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 菜单栏控件
- QAction 动作控件
-
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) # GUI程序的入口对象 w = MyWidget() # 新建一个自定的控件对象 w.resize(500, 300) # 设置控件的大小 w.move(300, 300) # 设置控件的起始位置 w.setWindowTitle('Simple') # 设置控件的标题 w.show() # 显示控件 sys.exit(app.exec_()) # 进入消息循环