python的GUI界面编程Tkinter全解

2022-05-10科技177

python的GUI界面编程,常用的几个python库包含如下:

Tkinter:

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

wxPython:

wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python程序员很方便的创建完整的、功能键全的 GUI 用户界面。

Jython:

Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者SWT。Jython 可以被动态或静态地编译成 Java 字节码。

Tkinter界面库

今天我们主要介绍一下Tkinter,在库中定义了一些基础控件对象,和组合控件对象。可以在创建控件时传递控件属性,也可以在创建了控件对象以后,再设置属性。

窗口的GUI编程主要包含的知识点为窗口(顶层容器)、容器、组合控件、控件、控件属性、控件函数。本文提供了一个demo,包含了对顶层窗口、基础控件(标签、按钮)、组合控件(比例尺控件、NumericUpDown控件、ComboBox)、控件的属性(文本、位置)、控件函数(按钮点击事件)等内容的编程示例。

主要的控件

Button 按钮控件;在程序中显示按钮。

Canvas 画布控件;显示图形元素如线条或文本

Checkbutton 多选框控件;用于在程序中提供多项选择框

Entry 输入控件;用于显示简单的文本内容

Frame 框架控件;在屏幕上显示一个矩形区域,多用来作为容器

Label 标签控件;可以显示文本和位图

Listbox 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户

Menubutton 菜单按钮控件,由于显示菜单项。

Menu 菜单控件;显示菜单栏,下拉菜单和弹出菜单

Message 消息控件;用来显示多行文本,与label比较类似

Radiobutton 单选按钮控件;显示一个单选的按钮状态

Scale 范围控件;显示一个数值刻度,为输出限定范围的数字区间

Scrollbar 滚动条控件,当内容超过可视化区域时使用,如列表框。.

Text 文本控件;用于显示多行文本

Toplevel 容器控件;用来提供一个单独的对话框,和Frame比较类似

Spinbox 输入控件;与Entry类似,但是可以指定输入范围值

PanedWindow PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。

LabelFrame labelframe 是一个简单的容器控件。常用与复杂的窗口布局。

tkMessageBox 用于显示你应用程序的消息框。

12345678910111213141516171819控件属性

Dimension 控件大小;

Color 控件颜色;

Font 控件字体;

Anchor 锚点;

Relief 控件样式;

Bitmap 位图;

Cursor 光标;

1234567虽然python可以进行界面GUI设计,不过个人觉得界面设计还有net更牛逼一些。

python2.7下的代码

#coding:utf-8

from Tkinter import * #控件基础包,导入这个包后,这个包下的所有函数可以直接调用

import Tkinter

from Tkinter import Label, Button, END

from Tix import Tk, Control, ComboBox #升级的组合控件包

from tkMessageBox import showinfo, showwarning, showerror #各种类型的提示框

#除此之外还有很多界面编程的包

#顶层窗口

top = Tkinter.Tk #创建顶层窗口

top.geometry('250x150') #初始化窗口大小

top.title(标题)

top.tk.eval('package require Tix') #引入升级包,这样才能使用升级的组合控件

#标签控件

label = Tkinter.Label(top, text='Hello World!',font='Helvetica -12 bold') #创建标签

label.pack(fill=Y, expand=1) #填充到界面

#按钮控件

button = Tkinter.Button(top, text='QUIT',command=top.quit,activeforeground='white',activebackground='red', bg='red', fg='white') #创建按钮,command为回调函数

button.pack(fill=Tkinter.X, expand=1) #fill=tkinter.X表示横向拉伸完全

#自定义函数,控制控件的缩放

def resize(ev=None):

label.config(font='Helvetica -%d bold' % scale.get)

#比例尺控件

scale = Scale(top, from_=10, to=40,orient=HORIZONTAL, command=resize) #缩放比例尺

scale.set(12) #初始值

scale.pack(fill=X, expand=1) #填充到界面

#NumericUpDown控件

ct = Control(top, label='Number:',integer=True, max=12, min=2, value=2, step=2)

ct.label.config(font='Helvetica -14 bold')

ct.pack

#ComboBox控件

cb = ComboBox(top, label='Type:', editable=True)

for animal in ('dog', 'cat', 'hamster', 'python'):

cb.insert(END, animal)

cb.pack

Tkinter.mainloop #运行这个GUI应用

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748在python3中,

Tkinter改成了tkinter,

Tix改成了tkinter.tix,

tkMessageBox 改成了tkinter.messagebox

python3.6下代码

#coding:utf-8

#GUI界面编程

from tkinter import * #控件基础包,导入这个包后,这个包下的所有函数可以直接调用

import tkinter

from tkinter import Label, Button, END

from tkinter.tix import Tk, Control, ComboBox #升级的组合控件包

from tkinter.messagebox import showinfo, showwarning, showerror #各种类型的提示框

#除此之外还有很多界面编程的包

#顶层窗口

top = tkinter.Tk #创建顶层窗口

top.geometry('250x150') #初始化窗口大小

top.title(标题)

top.tk.eval('package require Tix') #引入升级包,这样才能使用升级的组合控件

#标签控件

label = tkinter.Label(top, text='Hello World!',font='Helvetica -12 bold') #创建标签

label.pack(fill=Y, expand=1) #填充到界面

#按钮控件

button = tkinter.Button(top, text='QUIT',command=top.quit,activeforeground='white',activebackground='red', bg='red', fg='white') #创建按钮,command为回调函数

button.pack(fill=tkinter.X, expand=1) #fill=tkinter.X表示横向拉伸完全

#自定义函数,控制控件的缩放

def resize(ev=None):

label.config(font='Helvetica -%d bold' % scale.get)

#比例尺控件

scale = Scale(top, from_=10, to=40,orient=HORIZONTAL, command=resize) #缩放比例尺

scale.set(12) #初始值

scale.pack(fill=X, expand=1) #填充到界面

#NumericUpDown控件

ct = Control(top, label='Number:',integer=True, max=12, min=2, value=2, step=2)

ct.label.config(font='Helvetica -14 bold')

ct.pack

#ComboBox控件

cb = ComboBox(top, label='Type:', editable=True)

for animal in ('dog', 'cat', 'hamster', 'python'):

cb.insert(END, animal)

cb.pack

tkinter.mainloop #运行这个GUI应用

相关文章

钉钉软件怎样取消假期?

若请假审批单(调休、事假等)中的请假时间填写错误或者请假提前回来了,请更改审批单中的时间。 1、方法:发起人打开对应的请假审批单详情页,在界面下方会显示【撤销】和【修改】按钮,修改审批单中的时间后再次提交。 2、【撤销】或【修改】需要审批人审批同意才可以修改/撤销成功,撤销/修改只能操作一次。...

《三体》中如果程心不是执剑人,那么罗辑会在最后按下按钮吗?

题主的意思是假如程心没有接任执剑人,三体人悍然派水滴进攻时,罗辑会否在最后时刻果断按下引力波发射器的遥控器按钮,而不是像程心一样把遥控器丢掉? 对这个问题,我的回答是,首先这种假设的情形不会出现。其次,假如真的出现了,罗辑一定会果断按下按钮。 1.如果程心没有接任执剑人,罗辑依然是执剑人的话,三体人...

如何秒杀商品,秒杀需要什么技巧?

1、首先进入秒杀界面,一般界面上会有秒杀开始的时间。 2、等待秒杀开始时间的前10分钟,会出现刷新抢宝按钮,再最后一分钟,就不停点击这个按钮刷新。 3、当秒杀时间到了,就会出现需要输入的汉字或拼音4、用最快的速度输入要求的汉字或拼音,点击立即秒杀。5、如果速度够快的话,会直接进入付款界面,那就代表秒...

如何预约挂号?

1、首先在手机上安装支付宝,安装完成后找到支付宝图标直接打开。 2、打开支付宝APP后,登陆支付宝,进入到支付宝首页。 3、进入到支付宝首页后,找到更多点击打开。 4、进入便民生活,找到医疗健康点击打开。 5、弹出预约挂号,点击预约挂号。 6、弹出挂号就诊界面,可以输入搜索,找到自己想去的医院,点击...

预警系统有什么功能?

这个功能是对所有清博舆情用户开放的,没有收到预警信息可能是因为没有打开自动预警按钮,另外还需要选择预警联系人、预警方式、预警频次等等,选择保存之后设置才会生效。 预警方式又分3种: 1.负面信息:系统会对采集到的信息进行情感判断,被判断为强负面的信息会出现在舆情预警-负面信息模块,系统会自动把这些信...

在浩方玩星际看不到房间?

你的意思我看明白了,无非是说自己在浩方星际里看不见别人建的游戏,对吗?我帮你分析的可能如下: 1、一定要通过浩方平台星际房间里的“启动游戏”按钮启动星际,这点最关键。如果你是直接通过星际文件夹里的“starcraft.exe”文件启动星际的话,进入星际后是看不见别人建的游戏的。 2、星级争霸进入...

如何输入中文我怎么在魔兽争霸中输入中文名字?

建立一个游戏,在游戏开始前的创建地图界面左下角的聊天窗口输入你想要的中文名字,按住Shift键+方向键的左键也就是“←”(按住Shift不放,方向键多点几下,选中所有名字,按下Ctrl+C, 然后返回局域网界面,(就是创建游戏界面),在名字那一栏,同时按下Ctrl+"V",应该可以把名字复制过来的,...

如何设置ONLYOFFICE汉化界面?

实际上网上有汉化界面的方法官方的github中的issu也讨论的在7#issu中engineercms二次开发golang语言就实现了中文界面了,你可以搜搜onlyoffice golang其实就是将docker中onlyoffice容器里的字体全部换成windows字体,再在写作页面的js中设置成...

怎样在其他渠道充值王者荣耀?

第一步:在游戏界面中点击贵族 第二步:点击“去充值”按钮 第三步:选择要充值的点券后,系统会跳出一条确认提醒, 第四步:输入你的app store密码即可充值成功 首先玩家进入王者荣耀的游戏主界面,点击充值按钮后,使用网银进行充值。在电脑上下载itunes连接手机登录iphone手机或者...

如何设置H3C路由器?

可以打开H3C的路由器官网,进入后点击WAN设置,填写运营商的账号和密码即可,以MSR830型号为例,具体步骤如下: 1、打开电脑,打开浏览器,在地址栏界入入键弹出登录界面。 2、在左侧导航栏中点选接口管理-WAN设置打开WAN参数设置界面。 3、根据实际的情况来选择对应的上网方式进行参数设置,上网...

贴吧怎么发帖?

1、打开手机贴吧,能看到底部导航栏中间有个+号,点击一下中间的加号。 2、点击后,可以选择文字拍摄和相册,也可以直播。不过发帖,点击第一个文字就可以了。 3、打开后,输入文字内容也可以添加图片其他内容,不过发的帖子是在自己的主页中。 4、要想在某个贴吧里面发帖,就要先进入到贴吧里面。在首页中,点击进...

洗衣机自动投币器怎么使用?

先将要洗的衣物用水,加上洗衣液,这样洗衣服会会干净点,浸透数小时放在盆。 打开洗衣机盖子,轻轻提下就可以,不要太用力。 接着将盆里的衣物慢慢一件一件放入洗衣机容器中,不要超过洗衣机所容纳的衣服kg。 接着合上洗衣机的盖子,不用往里面加水,启动后自己会加。 找到投币式洗衣机的投币器,一个硬币默认是脱干...