简介
tkinter
tkinter(Tk interface)是Python的标准GUl库,支持跨平台的GUl程序开发。tkinter适小型的GUl程序编写,也特别适初学者学习GUl编程。
wxPythonwxPython是比较流行的GUI库,适大型应用程序开发,功能强于tkinter,整体设计框架类似于MFC(MicrosoftFoundation Classes微软基础类库).
PyQTQt是一种开源的GUI库,适大型GUI程序开发,PyQt是Qt工具包标准的Python实现。我们也可以使用QtDesginer界面设计器快速开发GUl应用程序.
官网https://docs.python.org/3/library/tkinter.html
创建一个窗口天眼查资料显示,江苏金沃机械有限公司,成立于2007年,位于镇江市,是一家以从事其他制造业为主的企业。企业注册资本1200万人民币。通过天眼查大数据分析,江苏金沃机械有限公司共对外投资了1家企业,参与招投标项目26次,财产线索方面有商标信息5条,利信息93条,此外企业还拥有行政许可11个。
声明:市场有风险,投资需谨慎。本文为AI基于三方数据生成,仅供参考,不构成个人投资建议。
一个GUI带事件的程序 窗口大小和位置geometry()尺寸
窗口放至屏幕中间 常用组件汇总组件类关系图
GUI面向对象写法通过类 Application 组织整个 GUI 程序,类 Application继承了 Frame 及通过继承拥有了父类的特。通过构造函数__init__()初始化窗口中的对象,通过 createWidgets()方法创建窗口中的对象。Frame 框架是一个 tkinter 组件,表示一个矩形的区域。Frame 一般作为容器使用,可以放置其他组件,从而实现复杂的布局。
简单组件 Label 标签Label(标签)主要用于显示文本信息,也可以显示图像。Label(标签)有这样一些常见属:
width,height用于指定区域大小,如果显示是文本,则以单个英文字符大小为单位(一个汉字宽度占 2 个字符位置,高度和英文字符一样);如果显示是图像,则以像素为单位。默认值是根据具体显示的内容动态调整。
font指定字体和字体大小,如:font =(font_name,size)
image显示在 Label 上的图像,目前 tkinter 只支持 gif 格式。
fg 和 bgfg(foreground):前景、bg(background):背景
justify针对多行文字的对齐,可设置 justify 属,可选值"left" “center” “right”
【示例】Label(标签)的用法
Options 选项详解通过学习 Label 组件,我们发现可以通过 Options 设置组件的属,从而控制组件的各种状态。比如:宽度、高度、颜、位置等等。
我们可以通过三种方式设置 Options 选项,这在各种 GUI 组件中用法都一致。
1.创建对象时,使用可变参数
2.创建对象后,使用字典索引方式
3 创建对象后,使用 config()方法
如何查看组件的 Options 选项:1.可以通过打印 config()方法的返回值,查看 Options 选项 print(fred.config())2.通过在 IDE 中,点击组件对象的构造方法,进入到方法内观察:
上面代码中有:“standard options 标准选项”和“widget-specific options 组件特定选项”。我们将常见的选项汇总如下:
ButtonButton(按钮)用来执行用户的单击操作。Button 可以包含文本,也可以包含图像。按钮被单击后会自动调用对应事件绑定的方法。【示例】Button 按钮用法(文字、图片、事件)
Entry 单行文本框Entry 用来接收一行字符串的控件。如果用户输入的文字长度长于 Entry 控件的宽度时, 文字会自动向后滚动。如果想输入多行文本, 需要使用 Text 控件。【示例】Entry 单行文本框实现简单登录界面
Text 多行文本框Text(多行文本框)的主要用于显示多行文本,还可以显示网页链接, 图片, HTML 页面, 甚至 CSS 样式表,设备保温施工添加组件等。因此,也常被当做简单的文本处理器、文本编辑器或者网页浏览器来使用。比如 IDLE 就是 Text 组件构成的。【示例】Text 多行文本框基本用法(文本输入、组件和图像显示)
利用 Tags 实现更加强大的文本显示和控制Tags 通常用于改变 Text 组件中内容的样式和功能。你可以修改文本的字体、尺寸和颜。另外,Tags 还允许你将文本、嵌入的组件和图片与鼠标和键盘等事件相关联。【示例】利用 Tag 属实现更复杂文本控制
Radiobutton 单选按钮Radiobutton 控件用于选择同一组单选按钮中的一个。Radiobutton 可以显示文本,也可以显示图像。【示例】Radiobutton 基础用法
测试 Radiobutton 组件的基本用法,使用面向对象的方式
Checkbutton 复选按钮Checkbutton 控件用于选择多个按钮的情况。Checkbutton可以显示文本,也可以显示图像。【示例】Checkbutton 复选按钮用法
canvas 画布canvas(画布)是一个矩形区域,可以放置图形、图像、组件等。【示例】canvas 画布使用基础示例
布局管理器一个 GUI 应用程序然有大量的组件,这些组件如何排布?这时候,就需要使用 tkinter 提供的布局管理器帮助我们组织、管理在父组件中子组件的布局方式。tkinter 提供了三种管理器:pack、grid、place。grid 布局管理器grid 表格布局,采用表格结构组织组件。子组件的位置由行和列的单元格来确定,并且可以跨行和跨列,从而实现复杂的布局。
grid()方法提供的选项【示例】grid 布局用法-登录界面设计
【示例】通过 grid 布局-实现计算器软件界面。根据实际简易计算器的按键分布,设计一个相仿的计算器界面,相应的功能暂不需要实现。
pack 布局管理器pack 按照组件的创建顺序将子组件添加到父组件中,按照垂直或者水平的方向自然排布。如果不指定任何选项,默认在父组件中自顶向下垂直添加组件。
地址:大城县广安工业区pack 是代码量少,简单的一种,可以用于快速生成界面。pack()方法提供的选项
【示例】pack 布局用法,制作钢琴按键布局
place 布局管理器place 布局管理器可以通过坐标精确控制组件的位置,适用于一些布局更加灵活的场景。place()方法的选项
【示例】place 布局管理-基本用法测试
【示例】place 布局管理-扑克牌游戏 demo
扑克牌游戏的界面设计
事件处理一个 GUI 应用整个生命周期都处在一个消息循环 (event loop) 中。它等待事件的发生,并作出相应的处理。Tkinter 提供了用以处理相关事件的机制. 处理函数可被绑定给各个控件的各种事件。
如果相关事件发生, handler 函数会被触发, 事件对象 event 会传递给 handler 函数
鼠标和键盘事件
event 对象常用属
【示例】鼠标事件和键盘事件用法测试
多种事件绑定方式汇总
组件对象的绑定1.通过 command 属绑定(适简单不需获取 event 对象)Button(root,text=”登录”,command=login)2.通过 bind()方法绑定(适需要获取 event 对象)c1 = Canvas(); c1.bind(“”,drawLine)
组件类的绑定
调用对象的 bind_class 函数,将该组件类所有的组件绑定事件:w.bind_class(“Widget”,”event”,eventhanler)
比如:btn01.bind_class(“Button”,””,func)
【示例】多种事件绑定方式总结
其他组件
OptionMenu 选择项OptionMenu(选择项)用来做多选一,选中的项会在顶部显示。【示例】OptionMenu(选择项)的基本用法
Scale 移动滑块Scale(移动滑块)用于在指定的数值区间,通过滑块的移动来选择值。【示例】使用 Scale(移动滑块)控制字体大小变化
颜选择框颜选择框可以帮助我们设置背景、前景、画笔颜、字体颜等等。【示例】颜选择框基本用法
文件对话框文件对话框帮助我们实现可视化的操作目录、操作文件。后,将文件、目录的信息传入到程序中。文件对话框包含如下一些常用函数
【示例】文件对话框基本用法
【示例】打开指定 txt 文件,并读出文件内容到窗口
简单输入对话框simpledialog(简单对话框)包含如下常用函数:
参数中,title 表示窗口标题;prompt 是提示信息;命名参数**kw 为各种选项:initialvalue(初始值)、minvalue(小值)、maxvalue(大值)。【示例】简单对话框基本用法
通用消息框messagebox(通用消息框)用于和用户简单的交互,用户点击确定、取消。如下列出了 messagebox 的常见函数:
【示例】通用消息框的基本用法
ttk 子模块控件我们再前面学的组件是 tkinter 模块下的组件,整体风格较老较丑。为了弥补这点不足,出了 ttk 组件。ttk 组件更加美观、功能更加强大。使用 Combobox 替代了原来的Listbox 、新增了 LabeledScale( 带标签的 Scale) 、Notebook(多文档窗口)、Progressbar(进度条)、Treeview(数)等组件。使用 ttk 组件与使用普通的 Tkinter 组件并没有多大的区别,只要导入 ttk 模块即可。ttk 子模块的官方文档:https://docs.python.org/3.7/library/tkinter.ttk.html
菜单和工具栏GUI 程序通常都有菜单,方便用户的交互。我们一般将菜单分为两种:1.主菜单主菜单通常位于 GUI 程序上方。例如:
2.快捷菜单(上下文菜单)通过鼠标右键单击某个组件对象而弹出的菜单,一般是与该组件相关的操作。
主菜单主菜单一般包含:文件、编辑、帮助等,位于 GUI 窗口的上面。创建主菜单一般有如下 4 步:1.创建主菜单栏对象
2.创建菜单,并添加到主菜单栏对象
3.添加菜单项到 2 步中的菜单
4.将主菜单栏添加到根窗口
【示例】记事本软件主菜单设计
上下文菜单快捷菜单(上下文菜单)是通过鼠标右键单击组件而弹出的菜单,一般是和这个组件相关的操作,比如:剪切、复制、粘贴、属等。创建快捷菜单步骤如下:
1.创建菜单
2.绑定鼠标右键单击事件
【示例】为记事本程序增加快捷菜单
Tkinter布局(3种)Tkinter 提供了布局功能,主要包含 pack、grid 和 place 三种布局方法。其中 pack 布局方法在前面使用过,这是简单的布局方式。
grid 布局法就是将屏幕切成表格的样子,通过横向坐标 row 和纵向坐标 column 来指定元素的位置。一行标记为 0,一列也标记为 0。
后一种布局方法是 place,它直接指定元素在父元素中的坐标值,单位是像素。
到此这篇关于python Tkinter详解的文章就介绍到这了,更多相关python Tkinter内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
