编写一个tkinter程序,代码如下: #!.../usr/bin/env python # coding: utf-8 import tkinter as tk root = tk.Tk() root.title('tkinter') # 使用PhotoImage...将上面的python程序打包成exe可执行程序. 注意: 上面的代码中有gif图片设置为背景 下载一个.ico文件(也可不要,看需求) 进入python程序目录 ?...执行打包命令: -i 指定exe可执行程序图标,如果没有ico文件,可以不指定,直接 pyinstaller -F xxxxx.py pyinstaller -i favicon.ico -F tkinter_exe.py...双击运行程序 ? 大功告成! PS:如win7系统报错:(我用的win10没有问题) ?
电脑上文档文件被流氓软件加密,文档打开后乱码,听说通过重命名将文件类型更换为*.js然后再更成原来的文件类型后缀可以实现解密,于是用tkinter写了一个简单的GUI程序方便此操作。...image.png image.png 代码如下: # -* - coding:utf-8 -*- import os import tkinter import shutil from tkinter...() root.title("文件备份") dirBtn=tkinter.Button(root,text='打开目录') dirBtn.grid(row=0,column=0) dirLabel=tkinter.Label...(root,text="你选择的目录") dirLabel.grid(row=0,column=1) okBtn1=tkinter.Button(root,text="OK") okBtn1.grid(...row=0,column=2) fileBtn=tkinter.Button(root,text='打开文件') fileBtn.grid(row=1,column=0) fileLabel=tkinter.Label
代码要点:1)使用tkinter的Label显示图片;2)tkinter的PhotoImage支持的图片格式较少,使用pillow扩展库的Image和ImageTk弥补了这个缺点。...import os import tkinter import tkinter.messagebox from PIL import Image, ImageTk # 创建tkinter应用程序窗口 root...= tkinter.Tk() # 设置窗口大小和位置 root.geometry('430x650+40+30') # 不允许改变窗口大小 root.resizable(False, False) #...('', '这已经是第一张图片了') elif new>=len(pics): tkinter.messagebox.showerror('', '这已经是最后一张图片了') else...下一张', command=btnNextClick) btnNext.place(x=230, y=20, width=80, height=30) # 用来显示图片的Label组件 lbPic = tkinter.Label
1、https://github.com/bigtigeryo/yingyihan 2、程序编辑到操作软件或者web上才方便应用。 3、
import tkinter as tk root = tk.Tk() root.title('hello world') label = tk.Label(root,text = 'My name is
PyQt 组件在窗体上的定位 pack函数 tkinter常见事件类型 常见事件类型 事件属性 基本使用方法 from Tkinter import * 与 import Tkinter 的区别...LGPL协议是一个商业友好的协议使用 LGPL 协议开发闭源程序,如果你使用动态链接的形式,那么,你可以以任何形式(商业的、非商业的、开源的、非开源的等等)发布你的应用程序。...值得注意的是PyQt的采用的是GPLv3许可证和需要购买版权的商业许可证发布的,该许可证允许开发专有应用程序,可以由开发者选择。...GPLv3许可证大概意思就是说,使用PyQt后你的程序就必须要开源,如果闭源商用就会违反协议,后果自负,在国内可能很多公司部注重这个,随便在用,但是如果公司比较有影响力的话,违反协议说不定哪天收到律师函...,那么不能省略掉模块名Tkinter import Tkinter,那么不能省略掉模块名Tkinter Tkinter.OptionMenu(self.root, variable, "one", "two
运行程序,OptionMenu 默认值为"python",打印出的数值也为"python" 如果设置的值不包含在当前的列表中,会是什么结果?...如下的代码使用"Tkinter"来测试 代码: import tkinter as tk root = tk.Tk() v = tk.StringVar(root) v.set('tkinter')...程序依旧是默认值改变为 Tkinter,打印结果也变为 Tkinter,但 Tkinter 不会添加到OptionMenu 的列表中,也就是说,当选择其它的选项时,Tkinter 的值会丢失 打印 OptionMenu...的值 代码: import tkinter as tk root = tk.Tk() v = tk.StringVar(root) v.set('tkinter') def printoption(...每次点击 OptionMenu 程序打印出上次选中的项值 使用 list 作为 OptionMenu 的选项 代码: import tkinter as tk root = tk.Tk() v =
Tkinter 之 Menu ,菜单 代码: import tkinter as tk root = tk.Tk() def hello(): print('hello menu') menubar...添加下拉菜单 代码: import tkinter as tk root = tk.Tk() def hello(): print('hello menu') menubar = tk.Menu...向菜单中添加 Checkbutton 项 代码: import tkinter as tk root = tk.Tk() def printitem(): print('Python = ',...程序每次打印出当前选中的语言,与 Checkbutton 不同的是,同一个组内只有一个处于选中状态 向菜单中添加分隔符 代码; import tkinter as tk root = tk.Tk() menubar...将上面例子中的菜单改为右击弹出菜单 方法是通过绑定鼠标右键,每当点击时弹出这个菜单,去掉与 root 的关联 代码: import tkinter as tk root = tk.Tk() menubar
1.程序运行的结果的一样的 示例: import tkinter as tk root = tk.Tk() lb = tk.Listbox(root, selectmode=tk.BROWSE) for...与 BROWSE 相似 的为 SINGLE,但不支持鼠标移动选中位置 使用 selectmode = EXPANDED 使用 Listbox 来支持 Shift 和 Control 运行程序,点中“python...",shift + 点击"tkinter",会选中所有的 item 运行程序,点中"python",control + 点击"py3study",会选中 python 和 py3study,第二项tkinter...运行程序,只有1-3被删除 删除全部内容,使用 delete 指定第一个索引值0和最后一个参数 END,即可 选中操作函数,使用函数实现。...程序运行结果,选中了所有的项。
Scrollbar(滚动条),可以单独使用,但最多的还是与其它控件(Listbox,Text,Canva 等)结合使用 创建一个Scrollbar 代码: import tkinter as tk root...无法拖动 slider 通过 set 方法来设置 slider 的位置 使用水平滚动条,通过 set 将值设置为(0.5,1),即 slider 占整个 Srollbar 的一半 代码: import tkinter...单独使用还是比较少见,大部分应用还是与其它控件的绑定,以下是将一个 Listbox与 Scrollbar 绑定的例子 代码: import tkinter as tk root = tk.Tk() lb...代码; import tkinter as tk root = tk.Tk() lb = tk.Listbox(root) sl = tk.Scrollbar(root) # side 指定 Scrollbar...运行程序,Scrollbar 的 slider 已经到了50位置,也就是说 Scrollbar 响应了 Listbox 视图改变的消息,调用 了自己的 set 函数。
TopLevel 与 Frame 类似,但它包含窗体属性(如 Title) 创建简单的Toplevel 代码: import tkinter as tk root = tk.Tk() t1 = tk.Toplevel...运行结果生成了两个窗体,一个是 root 启动的,另一个则是 Toplevel 创建的,它包含有一个 label;关闭 tl则没有退出程序,Tk 仍旧工作;若关闭 Tk,整个 Tk 结束 tl 也结束,...它不能单独存在 设置 Toplevel 的属性 title设置标题 geometry 设置宽和高 代码: import tkinter as tk root = tk.Tk() t1 = tk.Toplevel...使用 Toplevel 自己制作提示框 代码: import tkinter as tk root = tk.Tk() mbyes, mbyesno, mbyesnocancel, mbyesnoabort
tkinter ,wxPython,pyQT 1、 from tkinter import Label widget=Label(None,text='Hello Gui') widget.pack...() widget.mainloop() 2| expand fill:组件随窗口调整大小 from tkinter import * widget=Label(None,text='Hello...widget.mainloop() file BOTH,Y,X 3、字典方式设置组件属性: image.png 4、设置窗体标题 image.png 5、button import sys from tkinter...w.pack() w.mainloop() 6、root.quit,side=LEFT image.png expand,fill 7、自定义回调函数: import sys from tkinter...quit) # bind double-left clicks widget.mainloop() 10、添加多个组件:Frame,Button,Label from tkinter
与Entry 类似,但可以指定输入范围值 创建一个Spinbox 代码: import tkinter as tk root = tk.Tk() # root.geometry('200x100') tk.Spinbox...只是创建了一个 Spinbox,其它的什么也做不了,与 Scale 不同,Scale 使用缺省值就可以控制 值的改变 设置 Spinbox 的最大、最小值和步距值 代码: import tkinter ...上面的代码将变量 v 与 sb 绑定,并将 Spinbox 的初始值设置为20,运行程序,Spinbox 的值显示为20,再点击 up 按钮,此时值变为40 再看下面的代码,与这个不同的是设置的值不包含在...tuple 之内 代码: import tkinter as tk root = tk.Tk() v = tk.StringVar() sp = tk.Spinbox(root, ...运行程序,显示的值为200,再次点击 up 按钮,显示的值为0,即虽然 Spinbox 能将值显示出来,但并不会将200添加到变量中,此时的索引值依旧为0,因为没有找到200的项。
textvariable=str1 # 通常是显示变量,如果变量被修改,会自动更新 value=, # 标志该按钮选项的值,在同一组 variale=, command=,) 程序成品...import tkinter as tk root = tk.Tk() root.title('饮食调查') root.geometry('220x200') lable1 = tk.Label(root...str1) lable2.pack() button = tk.Button(root,text='确定',command=suggest) button.pack() root.mainloop() 程序截图
每当选中组内的一个按钮时,其它的按钮自动改为非选中态,与其他控件不同的是:它有组的概念 不指定绑定变量,每个Radiobutton自成一组 创建一个简单的Radiobutton 示例: import tkinter... as tk root = tk.Tk() tk.Radiobutton(root, text='python').pack() tk.Radiobutton(root, text='tkinter')...创建一个 Radiobutton 组,使用绑定变量来设置选中的按钮 示例: import tkinter as tk root = tk.Tk() v = tk.IntVar() # 选中value=...创建两个不同的组 代码: import tkinter as tk root = tk.Tk() v1 = tk.IntVar() v2 = tk.IntVar() v1.set(1) v2.set(2...不同的组,各个按钮互相不影响 如果同一个组中的按钮使用相同的 alue,则这两个按钮的工作方式完全相同 代码: import tkinter as tk root = tk.Tk() v = tk.IntVar
Checkbutton 又称为多选按钮 可以表示两种状态:On 和 Off,可以设置回调函数,每当点击此按钮时回调函数被调用 一个简单的Checkbutton例子: 示例: import tkinter...设置Checkbutton的回调函数 不管 Checkbutton 的状态如何,此回调函数都会被调用 示例: import tkinter as tk def calltext(): print...通过回调函数改变 Checkbutton 的显示文本 text 的值 代码: import tkinter as tk def calltext(): v.set('check py3study...',程序的打印值将不再是0或1,而是'Tkinter’或‘python’ 示例: import tkinter as tk def calltext(): print(v.get()) root...每次点击 Checkbutton,将打印出当前的值 tk.Checkbutton(root, text='www.py3study.com', onvalue='python', offvalue='tkinter
Checkbutton和Radiobutton类似,但是Radiobutton只能选中一个值,但是Checkbutton却能够选择多个值。 演示效果 创建wi...
Frame 就是屏幕上的一块矩形区域,多是用来作为容器(container)来布局窗体 创建Frame 代码: import tkinter...添加不同颜色的 Frame,大小均为20*400 向 Frame 中添加 Widget 代码: import tkinter as tk root = tk.Tk() fm = [] # 以不同的颜色区别各个...Label 被添加到上面的 Frame 中了,而不是 root 默认的最上方 Tk8.4以后 Frame 又添加了一类 LabelFrame,添加了 Title 的支持 代码: import tkinter
Entry 用来输入单行文本 示例: import tkinter as tk root = tk.Tk() tk.Entry(root, text='input >>>').pack() root.mainloop...上面的例子中将变量st与Entry绑定,然后将st的值设置为'www.py3study.com',程序运行时的初始值便设置了 设置为只读Entry,不能更改 Entry的另一个比较有用的属性,设置为只读...设置state属性为'readonly' 示例: import tkinter as tk root = tk.Tk() st = tk.StringVar() entry = tk.Entry(root...实际上Entry的属性值可以使用的也为normal/readonly/disabled, normal 正常 readonly 只读 disabled 禁用 代码: import tkinter as...设置为密码输入框 将Entry作为一个密码输入框来使用,即不显示用户输入的内容值,用特定符号来代替,使用属性show来指定 示例: import tkinter as tk root = tk.Tk
Pack 为一布局管理器,可将它视为一个弹性的容器 一个空的 widget 代码: import tkinter as tk root = tk.Tk() # 查看当前 root 下的子组件,解释器没有报异常...pack_salves 打印当前组件包拥有的子组件,通过这个函数可以查看各个组件是否有包含关系 root 与 Pack 的关系 使用文字 create_text 代码: import tkinter as...产生影响,也就是说 Pack 可以“缩小”至只包含一个 Label 组件,root 可以自己控件自己的大小 向 Pack 中添加多个组件 向 Pack 中添加多个 Label 代码: import tkinter...注意最后一个 Label 的显示不完全,因为root大小设置了,Label超出范围了 固定设置到自由变化 上例中看到 label4没有显示完全 代码: import tkinter as tk root...expand 如何控制组件的布局 这个属性指定如何使用额外的空间,即上例中留下来的“空白” 代码: import tkinter as tk root = tk.Tk() # 向 root 中 pack
领取专属 10元无门槛券
手把手带您无忧上云