python+tkinter GUI程序

【Python】Tkinter模块(巨详细) 通常如果没有为组件设置大小和设置间距,组件的大小应该是适应内容;如果设置了间距,那么无论标签里的内容多少,里面的内容始终能够与标签边缘保持距离。其左上角的羽毛是窗口的默认图标,而羽毛右边的“tk”是窗口的默认名称。tkinter模块中大多数组件都可以通过width和height设置宽度和高度,大部分组件设置大小时,单位为像素,但是也有部分组件单位为文字的行,例如Label组件。虽然tkinter模块中提供了众多组件且每个组件都有各自的属性,但有些属性是各组件通用的。实例-设置组件的间距。 阅读详情


前言

  • Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。




一、tkinter是什么?

          Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序




二、使用步骤



1.引入库

from tkinter import *



2.创建一个GUI程序

import tkinter 
root = tkinter.Tk()  
root.title("TK标题")  # 设置tk标题
root.geometry("850x750+500+50")  # 宽850、高750、在屏幕500、50的位置显示
root.mainloop() # 进入消息循环

3.Tkinter 组件

  • Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。目前有15种Tkinter的部件。我们提出这些部件以及一个简短的介绍,在下面的表:

    控件描述
    Button按钮控件;在程序中显示按钮。
    Canvas画布控件;显示图形元素如线条或文本
    Checkbutton多选框控件;用于在程序中提供多项选择框
    Entry输入控件;用于显示简单的文本内容
    Frame框架控件;在屏幕上显示一个矩形区域,多用来作为容器
    Label标签控件;可以显示文本和位图
    Listbox列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户
    Menubutton菜单按钮控件,用于显示菜单项。
    Menu菜单控件;显示菜单栏,下拉菜单和弹出菜单
    Message消息控件;用来显示多行文本,与label比较类似
    Radiobutton单选按钮控件;显示一个单选的按钮状态
    Scale范围控件;显示一个数值刻度,为输出限定范围的数字区间
    Scrollbar滚动条控件,当内容超过可视化区域时使用,如列表框。.
    Text文本控件;用于显示多行文本
    Toplevel容器控件;用来提供一个单独的对话框,和Frame比较类似
    Spinbox输入控件;与Entry类似,但是可以指定输入范围值
    PanedWindowPanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。
    LabelFramelabelframe 是一个简单的容器控件。常用与复杂的窗口布局。
    tkMessageBox用于显示你应用程序的消息框。

    标准属性

    标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。

    属性描述
    Dimension控件大小;
    Color控件颜色;
    Font控件字体;
    Anchor锚点;
    Relief控件样式;
    Bitmap位图;
    Cursor光标;

3.1、button 按钮

Button(root, text="退出", command=quit).grid(row=0, column=0)  
# text:按钮显示的文本;command:点击后执行的方法

3.2、Lable 标签

Label(root, text="标签").grid(row=0, column=0, pady=5, padx=5)
# text:显示的文本,pady:与y轴隔开5个像素, padx:与x轴隔开5个像素

3.3、Listbox   列表框

from tkinter import *
root = Tk()
root.geometry("300x200+100+100")
l1 = Listbox(root)
l1.grid(padx=10)
for i in range(10):
    l1.insert(END,i*1000)
root.mainloop()

3.4、Menu  菜单

import tkinter as tk

def callback():
    print("~被调用了~")

root = tk.Tk()
# 创建一个顶级菜单
menubar = tk.Menu(root)

# 创建一个下拉菜单“文件”,然后将它添加到顶级菜单中
filemenu = tk.Menu(menubar, tearoff=False)
filemenu.add_command(label="打开", command=callback)
filemenu.add_command(label="保存", command=callback)
filemenu.add_separator()  #  分割线
filemenu.add_command(label="退出", command=root.quit)
menubar.add_cascade(label="文件", menu=filemenu)

# 创建另一个下拉菜单“编辑”,然后将它添加到顶级菜单中
editmenu = tk.Menu(menubar, tearoff=False)
editmenu.add_command(label="剪切", command=callback)
editmenu.add_command(label="拷贝", command=callback)
editmenu.add_command(label="粘贴", command=callback)
menubar.add_cascade(label="编辑", menu=editmenu)

# 显示菜单
root.config(menu=menubar)

root.mainloop()

        

3.5、message  消息框

# 正常提示框
tkinter.messagebox.showinfo("提示框标题", "提示文本")

# 警告提示框
tkinter.messagebox.showwarning("提示框标题", "提示文本") 
 
# 错误提示框
tkinter.messagebox.showerror("提示框标题", "提示文本")
  
# 显示“是|否”,是:yes,否:no
tkinter.messagebox.askquestion("标题", "提示文本") 
 
# 显示“确定|取消”, 确定:True,取消:False
tkinter.messagebox.askokcancel("标题", "提示文本")
  
# 显示“是|否”,是:True,否:False
tkinter.messagebox.askyesno("标题","提示文本")  

# 显示“是|否|取消”, 是:True, 否:False, 取消:None
tkinter.messagebox.askyesnocancel("标题","提示文本") 

# 警告提示框,显示“重试|取消”, 重试:True, 取消:False  
tkinter.messagebox.askretrycancel("标题","提示文本")  

3.6、Radiobutton  单选框

import tkinter as tk

root = tk.Tk()

v = tk.IntVar()
#Radiobutto是单选框,只能选中一个
#选中哪一个按钮,会把value的值赋给v
for i in(("one", 1), ("two", 2), ("three", 3)):
    a1 = tk.Radiobutton(root, text=i[0], variable=v, value=i[1])
    a1.grid()

#显示v的值
l = tk.Label(root,textvariable=v)
l.grid()

tk.mainloop()

3.7、Checkbutton 复选框

import tkinter as tk
root = tk.Tk()
v = []
for i in range(4):  # 设置4个变量储存选择框选择状态
    v.append(tk.IntVar())

GIRLS = ['西施', '貂蝉', '王昭君', '杨玉环']

for index, name in enumerate(GIRLS):
    b = tk.Checkbutton(root, text=name, variable=v[index])  # 设置复选框,选择为1,不选为0
    b.pack(side=tk.LEFT)

for i in v:
    tk.Label(root, textvariable=i).pack(side=tk.LEFT)  # 用label显示选中状态

tk.mainloop()

3.8、Scrollbar  滚动条

Scrollbar 滚动条通常用于实现 listbox,canvas,text 文本框的滚动,也可以用于输入框的滚动设置,如果设置输入框的滚动只能设置 x 方向上的。

# -*- coding:utf-8-*-
from tkinter import *
from tkinter import ttk

root = Tk()
root.geometry("400x400")
root.columnconfigure(0, weight=1)

tv = ttk.Treeview(root, height=10, columns=('c1', 'c2', 'c3'))
for i in range(100):
    tv.insert('', i, values=('a' + str(i), 'b' + str(i), 'c' + str(i)))
tv.pack()

# ----vertical scrollbar------------
vbar = ttk.Scrollbar(root, orient=VERTICAL, command=tv.yview)  # 设置y垂直移动
tv.configure(yscrollcommand=vbar.set)
tv.grid(row=0, column=0, sticky=NSEW)
vbar.grid(row=0, column=1, sticky=NS)

# ----horizontal scrollbar----------
hbar = ttk.Scrollbar(root, orient=HORIZONTAL, command=tv.xview)  # 设置x水平移动
tv.configure(xscrollcommand=hbar.set)
hbar.grid(row=1, column=0, sticky=EW)

root.mainloop()

3.9、Toplevenl  二级窗口

from tkinter import *
def start():
    global top
    top = Toplevel()
    top.geometry("200x200+400+500")
    top.mainloop()

def stop():
    top.destroy()

root = Tk()
root.geometry("200x200+300+200")
Button(root, text="开个窗口", command=start).grid()
Button(root, text="关闭窗口", command=stop).grid()
root.mainloop()

3.10、canvas  画布

w = Canvas ( master, option=value, ... )
  • master: 按钮的父容器。

  • options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。

序号可选项 & 描述
1

bd

边框宽度,单位像素,默认为 2 像素。

2

bg

背景色

3

confine

如果为 true (默认), 画布不能滚动到可滑动的区域外。

4

cursor

光标的形状设定,如arrow, circle, cross, plus 等

5

height

高度

6

highlightcolor

要高亮的颜色

7

relief

边框样式,可选值为 FLAT、SUNKEN、RAISED、GROOVE、RIDGE。 默认为 FLAT。

8

scrollregion

一个元组 tuple (w, n, e, s) ,定义了画布可滚动的最大区域,w 为左边,n 为头部,e 为右边,s 为底部。

9

width

画布在 X 坐标轴上的大小。

10

xscrollincrement

用于滚动请求水平滚动的数量值。

11

xscrollcommand

水平滚动条,如果画布是可滚动的,则该属性是水平滚动条的 .set()方法。

12

yscrollincrement

类似 xscrollincrement, 但是垂直方向。

13

yscrollcommand

垂直滚动条,如果画布是可滚动的,则该属性是垂直滚动条的 .set()方法。

 Canvas 组件支持以下标准选项:

arc − 创建一个扇形

coord = 10, 50, 240, 210
arc = canvas.create_arc(coord, start=0, extent=150, fill="blue")

image − 创建图像

filename = PhotoImage(file = "sunshine.gif")
image = canvas.create_image(50, 50, anchor=NE, image=filename)

line − 创建线条

line = canvas.create_line(x0, y0, x1, y1, options)  # x0,y0为线段的起点,x1,y1为线段的终点

dash_line = canvas.create_line(x0, y0, x1, y1, dash=(4, 4))  # 虚线

oval − 创建一个圆

oval = canvas.create_oval(x0, y0, x1, y1, options)

polygon − 创建一个至少有三个顶点的多边形

oval = canvas.create_polygon(x0, y0, x1, y1,...xn, yn, options)

delete − 删除画布的组件

canvas.create_text(x, y, text="文本", tag="canvas")
canvas.create_text(x0, y0, x1, y1, tag="canvas")
canvas.delete("canvas")

itemconfigure − 配置画布中的组件

canvas = tkinter.Canvas(root)
canvas.grid()

def set(number):
    if number > 0:
        canvas.itemconfigure(t1, text="我是大于0", fill="red")  # t1是组件
    else:
        canvas.itemconfigure(t1, text="我是小于或等于0", fill="green")

t1 = canvas.create_text(100, 200, text="")
number = randint(-100, 100)
set(number)

bind − 获取鼠标位置

def moved(event):
    print(event.x, event.y)

canvas.bind("<Motion>", moved)

       

Python进阶 - GUI程序设计(tkinter) 0 概述Python中有许多GUI模块可以用于开发GUI程序。最简单的有Turtle,然而它并不能用来创建图形用户界面。用于开发GUI的库主要有以下几种: Tkinter:Python**内置**的标准GUI库,是一种小巧的开发库,开发速度快,在小型程序中仍有不少应用。它支持跨平台。 PyGTK:用C语言写的跨平台的GUI库,现在GTK已发展成了功能强大窗体丰富的GUI库。著名的GNOME即基于GT 阅读详情

相关推荐

【python入门项目】使用 Tkinter 的 Python 日历 GUI 应用程序

在 Python 中,我们可以使用 Tkinter 制作 GUI。如果你非常有想象力和创造力,你可以用 Tkinter 做出很多有趣的东西。在这里,我们将使用 Tkinter 制作一个 Python 日历 GUI 应用程序。在这个应用程序中,用户必须输入你想要查看日历的年份,然后日历才会出现。 使用 Tkinter 的 日历 GUI 应用程序 本文章为系列文章,共三个 python 入门项目。初学者可以尝试实现这些项目,并在 Python 编译环境中动手操作。 第一步:安装 Tkinter 首先

a379749的博客 1345

Python练习:tkinter(1)

Python练习 感觉自己做的东西离产品还是太远,因此,开始了写这个系列。 前言 Windows下用python编写简单GUI程序的方法万里长征第一步,先做到这一步,才好继续下一步。   Python实现GUI简单的来说可以调用Tkinter库,这样一般的需求都可以实现,首先我们做个可以简单的显示windows窗口的程序,代码如下: import tkinter def center_...

去向前方的博客 732

python中tkinter使用Radiobutton组件实现单选按钮,实现选择题并给出判断结果

python中tkinter使用Radiobutton组件实现单选按钮,实现选择题并给出判断结果

statistics+insight+vista+power 784

Python辅助作业批改

采用tkinter设计UI的界面,利用pyautogui控制鼠标和键盘,同时也可以定位鼠标点击的位置。4. 进入下一页后,连续点击四下向下的箭头,以定位到作业所在的位置。5. 可以置于所有页面上方,同时提供多个分数选项供选择。3. 自动切换到“进入下一页”Python辅助作业批改升级版。1. 自动定位输入框。

henanlion的博客 1212

100个Python实战项目(二)使用 Tkinter 的 日历 GUI 应用程序

在 Python 中,我们可以使用 Tkinter 制作 GUI。如果你非常有想象力和创造力,你可以用 Tkinter 做出惊人的事情。在这里,我们将使用 Tkinter 制作一个 Python 日历 GUI 应用程序。在这个应用程序中,用户必须输入他想要查看日历的年份,然后日历才会出现。 首先使用以下命令安装 Tkinter:pip install tk 我们还需要一个日历包,但我们不必安装它。它是python自动自带的默认包。 程序: #import calendar module import cal

努力是为了站在万人之中,成为别人的光 9624

使用Python的Tkinter模块创建GUI程序实例

Tkinter是Python标准库中的一个模块,它提供了一组工具和组件,用于构建用户友好的应用程序界面。在本文中,我们将介绍如何使用Tkinter创建一个简单的GUI程序,并提供相应的源代码。通过Tkinter模块,我们可以方便地创建各种GUI应用程序,添加更多的组件和功能。窗口中包含一个标签和一个按钮,点击按钮后,标签的文本将会更新。上述代码创建了一个标签对象,并将其添加到窗口中。以上代码创建了一个按钮对象,并指定了按钮的文本和点击事件的处理函数。在窗口中,我们可以添加各种组件,例如标签、按钮和文本框。

CyberLancer的博客 261

python中tkinter出选择题_Python Tkinter中的单选按钮值

派对有点晚了,但我在试图在Tkinter radiobuttons上找到一些东西时偶然发现了这个问题。问题1:我改变了三件事:1)在您定义之后,我立即将var的值设置为1。这是通过执行var.set(1)来完成的,并确保选择了第一个单选按钮(其值为1,正如您稍后在代码中定义的那样)。2)我已使用名为master.quit的函数替换了quit_loop命令。在这个功能中:var值通过print和ge...

weixin_39975261的博客 1147

MIKE21桥墩模拟实战:抠网格与构筑物法对比与选型指南

本文详细对比了MIKE21软件中抠网格法与构筑物法在桥墩模拟中的应用,包括操作步骤、适用场景及优缺点分析。通过实际案例数据展示两种方法的精度与效率差异,并提供选型决策树和常见问题解决方案,帮助工程师根据项目需求选择最优模拟方法。

weixin_42656416的博客 322

使用Python Tkinter创建GUI应用程序

大家好,当我们谈及使用Python Tkinter创建GUI应用程序时,我们涉及的不仅是技术和代码,更是关于创造力和用户体验的故事。Tkinter作为Python标准库中最常用的GUI工具包,提供了丰富的功能和灵活的接口,让开发者能够轻松地构建出各种各样的图形用户界面。Tkinter不仅易于学习和上手,而且具有强大的功能,足以满足各种应用场景的需求。从简单的计算器到复杂的数据可视化工具,Tkinter都能胜任。

若不知道要驶向哪个码头,那么任何风都不会是顺风。 2189

QT与Coin3D实现机器人的仿真

前言 Coin3D编程环境配置好后,开始下一步的机器人仿真任务。本文根据在研5轴机器人,完成三维模型生成与机器人的仿真。主要参考博主冯Jungle的博客,在此表示感谢。 ——2021.05.23 环境 Win10:VS2019、QT5.15.2、Coin3D、SolidWorks2016 机器人三维模型生成 目前广泛应用于因特网的VRML ( Virtual Reality Modeling Language,虚拟现实建模语言)为用户提供一种可参与的、并能对场景中对象主动做出反应的虚拟现实环境,现已成

焦露的博客 6907

基于51单片机的多功能计算器全套设计

当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且人脑比较容易出错。计算器作为一种快速通用的计算工具方便了用户的使用。计算器可谓是我们最亲密的电子伙伴之一。本设计着重在于分析计算器设计开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。 本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用5×8矩阵键盘,可以进行加、减、乘、除等十几种数字运算,同时支持括号

runweipa的博客 1743

python编写一个基于tkinter模块的gui程序_python GUI编程(Tkinter)

python提供了多个图形开发界面的库,几个常用Python GUI库如下:Tkinter: Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.,Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。wxPython:wxPython 是一...

weixin_39552179的博客 1300

Verilog除法器(32位无符号+带符号)

32位无符号除法器设计 恢复余数法: 恢复余数除法的基本思路是从“部分余数”中减去除数,如果结果为负(不够减),则恢复原来的部分余数,商0. 寄存器使用: reg_r 存放被除数a reg_b 存放除数b reg_r 存放余数(初始清零) 具体做法: 做减法时,减数是reg_b中的除数,被减数是reg_r中的余数左移一位,最低位由reg_q(被除数)的最高位补充。为了能够判断相减结果的正...

qq_38600065的博客 1万+

python中tkinter实现GUI程序:三个实例

Tkinter是Python的标准GUI库,用于创建跨平台的桌面应用程序。它是一个轻量级的库,易于学习和使用,适合初学者和开发小型项目。Tkinter的核心优势在于其简洁性,你可以用很少的代码实现功能丰富的窗体应用。Tkinter是Python中创建GUI的一种简单而强大的方式。无论你是初学者还是有经验的开发者,Tkinter都是入门GUI编程的理想选择。通过学习和使用Tkinter,你可以构建出直观、交互性强的桌面应用程序,增强用户体验。

定期分享我的发现和想法,感谢你的陪伴和支持 7294

开源项目 ruoyi-sso-oauth2(一)环境配置

Ruoyi若依实现单点登录SSO、oauth2认证

Xiaoweidumpb 9684

【txt文本加密】使用 cryptography 库实现加密和解密

cryptography 库是一个强大的 Python 库,用于实现加密和解密功能。它提供了各种加密算法,包括对称加密、非对称加密、哈希函数等。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 2667

Tkinter Python &带有真正Tkinter应用程序的Python GUI

Python是一种通用的、面向对象的高级编程语言。无论你是在人工智能或金融领域工作,还是在追求web开发或数据科学的职业生涯,Python都是你可以学习的最重要的技能之一。Python的开发是基于这样一个前提,即应该只有一种方法(最好是一种明显的方法)来做事,这种哲学导致了严格的代码标准化。首先,在我们的课程中,我们将解释Python的基本主题,以便刚接触Python的人能够理解它。无论你是在人工智能或金融领域工作,还是在追求web开发或数据科学的职业生涯,Python都是你可以学习的最重要的技能之一。

400

构建基于知识图谱的金融监管合规系统

金融行业是一个高度监管的领域,金融机构需要遵守众多复杂的法规和政策。传统的金融监管合规方式往往依赖于人工审查和简单的规则引擎,效率低下且容易出错。构建基于知识图谱的金融监管合规系统的目的在于利用知识图谱强大的知识表示和推理能力,实现对金融业务数据的自动化分析和合规检查,提高监管合规的效率和准确性。本系统的范围涵盖了金融机构的各类业务,如银行业务、证券业务、保险业务等。

AI天才研究院 1168

python编写一个基于tkinter模块的gui程序_Python GUI编程(Tkinter)

Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下:Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。wxPy...

weixin_39894104的博客 849

YOLOv13改进策略【Neck篇】| GSConv 轻量卷积,Slim-Neck 减参数还不掉点

Neck 篇的第二篇继续"替换式"改进,这次的对象是 Neck 里的下采样卷积。GSConv 出自《Slim-neck by GSConv: a better design of lightweight detector》(2022),它的出发点:DWSConv(深度可分离)轻但"信息混不进通道",标准卷积重但表达好——GSConv 用GConv(分组卷积)混通道 + DWConv 补空间 + Channel Shuffle 打散,两全其美。

qq_53329130的博客 30

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

python tkinter模块实现GUI小程序

tkinter概括 Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中. kinter包含了若干模块. Tk接口被封装在一个名为 _tkinter 二进制模块里( tkinter 的早期...

GC 8798

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python 桌面应用开发:使用 Tkinter 创建 GUI 应用程序

Tkinter 是 Python 的标准 GUI 库,提供了一种简单的方式来创建窗口、按钮、标签、文本框等常见界面元素。Tkinter 是跨平台的,意味着你可以在 Windows、macOS 和 Linux 上运行你的应用程序。你可以创建自定义对话框,以获取用户输入或显示信息。dialog.title("自定义对话框")label = tk.Label(dialog, text="这是一个自定义对话框")

孤客科技 3317

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【Python】使用tkinter编写gui程序

本文主要介绍使用python的tkinter库编写gui程序,创建一个窗口,设置窗口里面的按钮、文本等,并设置按钮响应。

liaotianyin的博客 896

基于tkinter模块创建GUI程序(python)

文章目录前言一、Tkinter是什么?二、使用步骤1.创建应用程序的主窗口对象(根窗口)2.tkinter主窗口3.组件拼图总结 前言   GUI(Graphics User Interface)使用图形用户界面编程,快速实现图形界面和用户的交互。(早期的都是基于控制台的程序,用户通过控制台和程序交互)。使用的模块(库文件):wxPython库和PyQT库文件   图形界面的是由一个个组件组成的,如图搭积木般拼装在一起,有的可以放其他的组件的组件就是容器 一、.

m0_53060753的博客 3280

python自带gui_Python语言自带的Tkinter写GUI小程序

本文主要向大家介绍了Python语言自带的Tkinter写GUI小程序,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。学了一点点python基础语法,就斗胆用它加上一些文件读写的module,写了几个文件处理的程序;但是需求又说:写个简单的GUI吧,用起来方便。目标:GUI实现点击选择文件按钮弹出windows的文件管理器,选取所需要的文件/文件夹将上述的路径显示出来点击运行按...

weixin_39816362的博客 183

python中tkinter实现GUI程序三个实例教程

到此这篇关于python中tkinter实现GUI程序三个实例教程的文章就介绍到这了,更多相关python tkinter实现GUI程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持。3.创建如图11-35所示的界面,输入作品和作者信息后,单击“读取信息”按钮将输入的信息在下方的输入框中显示,单击“退出”按钮退出程序的执行。本小节将介绍如何使用Tkinter创建基本的GUI程序,涵盖了Tkinter的核心元素,并提供实用的示例和技巧,让你迅速入门。

Oona_01的博客 190
上一篇: faker随机数据
下一篇: postman断言篇
测试点点点
博客等级 码龄9年 19粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值