python的GUI界面编程Tkinter全解

2022-05-10科技136

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应用

分享给朋友:

相关文章

如何购买Q币?

你好,Q币卡充值Q币只需要简单几步: 1:、首先充值卡买来之后确认一下是否已经被使用过,如果被使用过之后可能就变成了一张无效的充值账号,刮开序列号和密码。 2、可以在手机端充值,打开腾讯QQ,进入到主界面。 3、在主界面的位置,可以往右边划一下,会出现一个半边的对话界面,在对话界面会有很多的个人信息...

钉钉软件怎样取消假期?

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

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

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

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

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

如何设置ONLYOFFICE汉化界面?

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

淘宝人生怎么拍照,淘宝人生怎么合照?

淘宝人生上可以拍单人照,也可以与好友拍合照,想要拍合照时就需要添加好友,该怎么拍照生成形象呢?下面我们就来看看详细的教程。 1、打开淘宝人生主页面点击“拍照”,打开“拍照”界面后可以看到有初夏的回忆、春游等分类,这时点击“初夏的回忆” 2、打开“初夏的回忆”界面后点击“参加”,接着在新打开页面点选“...

如何设置H3C路由器?

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

·已知函数f(x)= f

注意到等式中f'(pi/4)是常数,所以 f'(x)=f'(pi/4)(-sinx)+cosx --->f'(pi/4)=f'(pi/4)[-sin(pi/4)]+cos(pi/4)] --->f'(pi/4)=f'(pi/4)(-√2/2)+√2/2 --->f'(pi/...

王者荣耀如何发预约?

您好,我是洛杰。 很高兴回答您的问题,我的回答如下。   官方优化内容预计是s20赛季上线,预约的方法还是一样的,自己开了房间以后查看好友列表,会展示好友离线、在线、游戏中(开局几分钟),可以根据这个确定对方游戏时间,然后发起预约,预约有快速发的消息,包括这局玩了还来不、快结束了吗下局一起?玩家也可...

广本雅阁方向盘cancel按钮,cruise按钮,resaccel按钮,decelset按钮,mode按钮各是什么意思?

cruise按钮是定速巡航开关键 cancel按钮是定速巡航暂停键 decelset按钮是定速巡航开始键,定速巡航开始后每按一次,定速巡航速度降低大概1.6km/h。 resaccel按钮是定速巡航暂停后恢复到上次巡航速度的恢复键,在定速巡航时每按一次,定速巡航速度增加大概1.6km/h。 mode...

如何拦截垃圾短信?

安装360杀毒软件,自动屏蔽垃圾短信。 1.首先,我们需要从“360手机官网”上下载“360杀毒手机版”程序。 2.运行“360杀毒”程序,在程序主界面中点击“拦截”项进入。 3.接下来程序会自动拒绝接收未知类信息。当然,对于“360杀毒”软件未成功拦截的信息,我们可以通过“举报”来将其加入黑...

有没有令人赏心悦目的网址导航网站?

你好。我是小何。 我来推荐一下我自己制作并运维的网址导航。 地址: 小何导航,做一个简洁但方便的导航 为什么要制作它作为一个运维师,闲来没事逛github是个良好习惯,而又是正好又一次,我刷到一个导航开源项目。 简洁的风格和丰富的资源库立马就吸引了我,于是我便将其打包了下来 后面对其经历了两天的改造...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。