PyQt入门
python GUI框架对比
-
Tkinter: python内置的GUI框架,使用TCL实现,python中内嵌了TCL解释器,使用它的时候不用安装额外的扩展包,直接import,跨平台。不足之处在于UI布局全靠代码实现,只有15种常用部件,显示效果简陋。
-
Wxpython:用得比较广泛,跨平台,C++编写,需要安装扩展模块;文档少,遇到问题不好解决,代码布局控件,不直观。
-
PyQt:QT原本是诺基亚的产品,源码用C++写的,python对QT的包装,跨平台,本地显示效果,根据系统决定,在win7下就是win7的显示效果;pyqt与qt的函数接口一致,qt开发文档丰富,所以pyqt开发文档也比较丰富;控件丰富,函数/方法多,拖曳布局;方便打包成二进制文件;GPL协议,商业程序需要购买商业版授权
为什么选择PyQt?
-
PyQt和Qt的接口完全一致,学一会二
-
跨平台,运行效率高
-
文档丰富,学习成本低
-
容易打包发布
PyQt内容大纲
-
基础控件
-
QWidget 最最最最基础的控件
-
QMainWindow 主界面控件
-
QMenuBar 菜单栏控件
-
QToolBar 工具栏控件
-
QStatusBar 状态栏控件
-
QPushButton 按钮控件
-
QRadioButton 单选按钮
-
QCheckBox 复选框按钮
-
QCombobox 下拉列表框
-
QLineEdit 单行文本框
-
QTextEdit 多行文本框
-
QSpinBox 计数器
-
QSlider 滑动条
-
QCalendar 日历
-
QDataTimeEdit 日期时间控件
-
QDialog 最最最最基础的对话框控件
-
QMessageBox 消息弹出式对话框
-
QInputDialog 输入对话框
-
QFontDialog 字体选择对话框
-
QFileDialog 文件对话框
-
-
高级控件
-
MVD 模型视图委托
-
QListView 列表显示
-
QTableView 表格显示
-
QTreeView 树形显示
-
QTimer 定时器
-
QThread 多线程
-
-
布局管理器
-
QHBoxLayout 水平布局管理器
-
QVBoxLayout 垂直布局管理器
-
QFormLayout 表单布局管理器
-
QGridLayout 网格布局管理器
-
-
事件处理
-
低级事件处理:复写对象的事件方法
-
高级事件处理:信号与槽
-
安装PyQt
pip install PyQt5
入门例子
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel class MyWidget(QWidget): def __init__(self): super(MyWidget, self).__init__() label = QLabel(self) label.setText('hello world!') if __name__ == '__main__': app = QApplication(sys.argv) w = MyWidget() w.resize(500, 300) w.move(300, 300) w.setWindowTitle('Simple') w.show() sys.exit(app.exec_())
原文地址:https://www.cnblogs.com/chusiyong/p/12903989.html
- 通过oracle类比MySQL中的字节字符问题(r4笔记第44天)
- Spring MVC的配置和使用
- Oracle总结【SQL细节、多表查询、分组查询、分页】
- 关于内存异常的一个猜想(r4笔记第43天)
- WebSocket就是这么简单
- 09(01)总结final,多态,抽象类,接口
- 01 Mybatis 的配置和使用
- Oracle总结【视图、索引、事务、用户权限、批量操作】
- 02 使用Mybatis的逆向工程自动生成代码
- 关于ORA-12801,ORA-27090的简单分析(r4笔记第58天)
- Oracle总结【PLSQL学习】
- 01 Maven构建的项目中,把.xml等配置文件添加到编译目录
- Java 语法清单-快速回顾
- 常用的CSS框架
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android基础教程数据存储之文件存储
- 关于Android短信验证码的获取的示例
- Linux下制作给ARM开发板使用的文件系统
- Android开发之ProgressBar字体随着进度条的加载而滚动
- Android 动态注册监听网络变化实例详解
- linux 服务器自动备份脚本的方法(mysql、附件备份)
- 详解Android中Glide与CircleImageView加载圆形图片的问题
- android全局监控click事件的四种方式(小结)
- Linux下如何永久修改主机名的方法步骤
- android与asp.net服务端共享session的方法详解
- Android实现多个连续带数字圆圈效果
- Android录制mp3格式文件
- Linux内核设备驱动之虚拟文件系统笔记整理
- linux服务器上使用nginx访问本地静态资源的方法
- Android控件之菜单的创建方式