python的部分GUI模块简介tkinter、pyqt5(Qt Designer)
笔者认为,这两个作为Python3较为常用且简单的GUI模块,是Python开发者所必须学习至少是了解的。
其中tkinter为Python3自带的GUI模块,而pyqt5则需要通过pip install pyqt5来下载,并下载相应的图形化编辑工具Qt Designer。
安装第三方包时遇到问题可以访问笔者的原创博客来解决:https://www.cnblogs.com/-X-peng/p/13746579.html
一、tkinter简介:
(此部分内容摘自:https://blog.csdn.net/gongqingkui/article/details/86105399)
1.1、注意
2.x版本下名为Tkinter,3.X下名为tkinter,注意首字母大小写不一样
最简单界面
Import tkinter as tk
Root = tk.Tk()
Tk.mainloop()
1.2、组件
Label l1 = tk.Label(root,text=’xxx’)第一个参数是Tk()对象,然后l1.pack()布局就行啦。
核心组件Toplevel,Label,Button,Canvas,Checkbutton,Entry,Frame,LabelFrame,Listbox,Menu,Menubutton,Message,OptionMenu,PaneWindow,Radiobutton,Scale,Scrollbar,Spinbox,Text,Bitmap,Image
Button绑定函数
Command=函数名
Button1.bind(‘<Button-1>’,函数名)
具体属性参考源码
注意,组件的variable或者textvariable 挂钩tk内置的变量即:
Pic_dir = StringVar() Entry(root,textvariable=pic_dic).pack()
内置变量有方法set 和get,用法可想而知
Radiobutton公用一个variable,value不同。Checkbutton用variable的变量是tk变量数组list。
其他常用组件
Messagebox 弹出消息框之类 .askokcancel(title,note)
Filedialog.askdirectory() 弹出目录选择窗口,返回目录名
1.3、布局
布局三种方法,pack grid place,同级只能用一种方法,可以用Frame破解规定
Pace 向下居中分部,有属性side = tk.LEFT,fill = tk.X tk.BOTH,anchor属性N,NE,E,SE,S,SW,W,NW,CENTER九个不同的值。
Grid 网格布局 row column 属性,从0开始
Place绝对值
1.4、菜单
Menubar = tk.Menu(root)
For i in ls:
Menubar.add_command(label=’xxx’,command=aaa’
Root[‘menu’]=menubar
子目录的话,再附加
Fmenu = tk.Menu(menubar)
Menubar.add_cascade(label=’文件’,menu=fmenu)
二、pyqt5简介
PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是目前最强大的库之一。PyQt是由Phil Thompson 开发。
PyQt实现了一个Python模块集。它有超过300类,将近6000个函数和方法。它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac。
PyQt采用双许可证,开发人员可以选择GPL和商业许可。在此之前,GPL的版本只能用在Unix上,从PyQt的版本4开始,GPL许可证可用于所有支持的平台。
访问此网站学习了解:https://www.jianshu.com/p/c61fc80ad6b3
(注意前提工作是将Qt designer与pycharm关联配置好)
最新文章
- 20170103简单解析MySQL查询优化器工作原理
- XP机器上WCF采用X509证书加密时IIS读取证书的授权
- fonts.useso.com 访问变慢
- javascript笔记4-函数表达式
- 《Prism 5.0源码走读》ModuleCatalog
- iOS打包ipa 让别人设备安装你的App
- GNU/Linux Distribution Timeline v12.10
- 腾讯出品的抓包工具Rythem
- Best practice for Invoke other scripts or exe in PowerShell
- Gdiplus 贴图(助记) -------------------拖动整个对话框
- 第十条:始终要覆盖toString()方法
- ES6的Proxy和Reflect
- .net 前端gb2312编码,后台获取参数乱码(因为表单提交的时候是utf-8编码 则在后台读取参数时会出现乱码)
- 虚拟机配置nginx无法访问80端口
- 我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比(转载)
- float导致出现大面积空白
- file相关方法
- (转)OpenStack各服务所用端口号总结
- css百分比问题——`top`、`left`、&#39;translate&#39;的百分比参照谁?
- 使用ReadOnlyCollection创建只读集合