zetcode教程 汉化版:
https://maicss.gitbook.io/pyqt5-chinese-tutoral/
官方网站:
https://www.riverbankcomputing.com/static/Docs/PyQt5/introduction.html
QT使用手册:
https://doc.qt.io/archives/qtjambi-4.5.2_01/com/trolltech/qt/gui/QComboBox.html
学习策略
1、明确需求
工作时是项目驱动,明确需求后,在网上查找相关资源,一步步累加功能。最好先搭建一个框架,之后就是在此框架上添加各种功能。
安装
pip install pyqt5
# qt5的图形界面工具,如qtdesinger
pip install pyqt5-tools
布局管理
Qt Designer中,工具箱的最上方有4种布局,分别是垂直布局、水平布局、栅格布局和表单布局。
实现布局有2种方式,通过 布局管理器 与 容器控件。
一个工程用界面通常由以下部分组成:
菜单栏
工具栏
左侧
常用控件
Qt中将表格、简单列表、树状列表称为"表项视图类" item view class;
有两种实现方式:
Item Views(Model-Based),以view结尾,如QListView等;
Item Widgets(Item-Based),以widget结尾,如QListWidget等;
区别:
1、Views 是 Widgets 类的父类;
2、Views是MVC架构的一种简化;Widgets将数据、展示、控制合在一起;实际上Widgets在Views基础上绑定了一个默认的存储数据并提供了相关方法。
QPalette调色板
# 设置背景颜色 或 背景图片
palette1 = QtGui.QPalette(self)
palette1.setColor(self.backgroundRole(), QColor(192,253,123)) # 设置背景颜色
palette1.setBrush(self.backgroundRole(), QtGui.QBrush(QtGui.QPixmap('../../../Document/images/17_big.jpg'))) # 设置背景图片
self.setPalette(palette1)
self.setAutoFillBackground(True) # 不设置也可以
# self.setWindowTitle('Icon') # 设置窗体标题
# self.setWindowIcon(QtGui.QIcon('../../../Document/images/firefox.png')) # 设置窗体ICON
Qbutton
button.setText("haah") # 改变文本
button.setEnabled(True) # 使能与禁用
QLineEdit 单行文本
只能单行编辑的文本框
edit.text() # 获取文本
edit.setText("haha") # 设置文本
edit.clear() # 清除所有文本
edit.setPlaceholderText('请在这里输入URL') # 设置默认提示文字
QPlainTextEdit 多行文本
edit.toPlainText() # 获取文本
edit.setPlainText("haha") # 设置文本
edit.appendPlainText("haha") # 在末尾添加文本
edit.clear() # 清除所有文本
edit.setPlaceholderText('请在这里输入URL') # 设置默认提示文字
QComboBox 组合框
method = cbox.currentText() # 当前 选中的选项 的文本
cbox.clear() # 清空选项
cbox.addItems(['by1','by2','by3'])
QSpinBox 数字输入框
number = box.value() # 返回的是整数对象
box.setValue(100)
信号returnPressed: 按下回车键
passwordEdit.returnPressed.connect(onLogin)
QAction
用于菜单栏、工具栏或自定义快捷键的抽象动作行为。
Pyqt 中__init__(self,parent==None) parent理解
参考:
在PyQt中,所有class都是从QObject派生而来,QWidget对象就可以有一个parent。这种parent-child关系主要用于两个方面:
- 没有parent的QWidget类被认为是最上层的窗体(通常是MainWindow),由于MainWindow的一些操作生成的新窗体对象,parent都应该指向MainWindow。
由于parent-child关系的存在,它保证了child窗体在主窗体被回收之时也被回收。 - parent作为构造函数的最后一个参数被传入,但通常情况下不必显示去指定parent对象。因为当调用局管理器时,部局管理器会自动处理这种parent-child关系。但是在一些特殊的情况下,我们必须显示的指定parent-child关系。如当生成的子类不是QWidget对象但继承了QObject对象,用作dock widgets的QWidget对象。
QTreeWidget
官方链接:https://doc.qt.io/archives/qtjambi-4.5.2_01/com/trolltech/qt/gui/QTreeWidget.html
第一手材料,需要了解大概,知道怎么用。
QTreeWidgetItem:想要编辑时需要在代码中添加
child2.setFlags(child2.flags()| Qt.ItemIsEditable)
;
且在Qt Designer中做相关操作;
Qt Designer中可以做的操作
1、editTriggers:DoubleClicked;
2、selectionMode:ExtendedSelection;
3、drapEnabled:
drapDropMode:DragDrop;
defaultDropAction:CopyAction;