PyQT5教程(待续)
一些工具和快捷键
在designer中可以使用ctrl + r 即可实现可视化页面
vscode可使用PYQT Integration该插件,右键点击生成的ui文件拉到最下面Compile Form即可生成python界面
基本组件
一般需要导入的包
from PyQt5.QtWidgets import QApplication, QMainWindow
QApplication作用
实例化一个应用对象
常用在
app = QApplication(sys.argv)
sys.argv是一组命令行参数的列表。Python可以在shell里运行,这个参数提供对脚本控制的功能
QMainWindow作用
实例化一个主应用程序窗口
MainWindow = QMainWindow()
按钮
QtWidgets.QPushButton() # 生成按钮
重要的api
按钮链接函数,lambda后解函数的实例
clicked.connect(lambda: fun("小明"))
获取输入框获取的文本,输入框属性一般为lineEdit
def get_text():
aaa = ui2.lineEdit.text() # lineEdit
print(aaa)
ui2.pushButton.clicked.connect(lambda:get_text())
界面的问题
不同的界面,跳转之后有可能大小不一样
在生成的Python代码中找到resize,该函数是改变窗口大小的
MainWindow.resize(800, 600)
各类查看器编辑器
对象查看器
根据控件的名称来filter(检索)
一般都是在MainWindow下(新建文件使用了Main Window)
在该下方有
中央小部件centralwidget
菜单栏menubar
状态栏 statusbar
应用实例:若做的界面控件很多,可根据自己定义的名字在对象查看器迅速定位到想找的控件
属性编辑器
根据点击的控件显示该控件的属性
应用实例:label标签的控件的pixmap属性可修改为指定的rpc图片为背景。
资源浏览器
添加资源的步骤
- 1.点击左方的打开资源文件,找到qrc文件,没有的话就新建个qrc文件
- 2.点击右方的添加前缀,前缀名类似于文件夹导航作用,比如,照片设置为Pic
- 3.点击右方的添加文件,就可以把照片或者其他文件添加进入
信号槽
xxx
各个组件
各个组件获取从Widget Box 小件物箱中
表单
在ltem widget中可以看到有三个widget
这里可以选择table widget即可。
表单里有用的属性:
horizontalHeader可以搜索到horizontalHeaderStretchLastSection该属性可以使表单界面水平横向拉升
窗口图标
from PyQt5.QtGui import QIcon
self.setWindowIcon(QIcon('./img/22.jpg'))
窗口标题
self.setWindowTitle('Center')
消息框
# QtWidgets中的QMessageBox
def closeEvent(self, event):
reply = QMessageBox.question(self, 'Message',
"Are you sure to quit?", QMessageBox.Yes |
QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
弹窗的输入框
db_text, db_action = QtWidgets.QInputDialog.getText(
self, '数据库名称', '请输入数据库名称', QtWidgets.QLineEdit.Normal)
Pyqt5启动工具和参考文档位置
其实文档并不在具有pyqt5文件夹中,而在qt5_applications文件夹中。
本机环境 python3.7.9,PyQt55.15.2;pyqt5-tools5.15.2.3.0.2
C:\Python37\Lib\site-packages\qt5_applications\Qt\bin
assistant.exe是文档程序,但并没有文档,需要自己下载导入
designer.exe是pyqt5的可视化编辑程序
组件的设计
大小设计
xxx.setGeometry(QtCore.QRect(x, y, a, b)); 前2个参数20,30是距离左上角的位置,后两个参数是宽高
self.pushButton.setGeometry(QtCore.QRect(20, 30, 101, 41)) #
获取组件的大小;使用size()方法
xxx.size()
布局设计
各个组件,布局可以包含组件加入(也就是类似于div的嵌套)
比如设计个登录页面,我们需要两个横向的输入块,两个横向的输入块纵向排列。这时候就需要2个水平布局结构,一个垂直布局,把两个水平布局依次加入到垂直布局即可实现效果页面。
layout1 = QVBoxLayout() # 垂直布局
layout2 = QHBoxLayout() # 水平布局
self.grid_layout = QGridLayout() # 网格布局
layout4 = QFormLayout() # 表单布局 ==> 快速构建 文本加输入框的形式
颜色的设计
按钮:
颜色考虑的是属性palette属性。设置按钮边框的颜色或者整个界面的颜色。
StyleSheet设计背景颜色
坑点:
一定要有前缀 background-color
background-color:rgb(0, 0, 255)
LineEdit:
Text右边的颜色即可更改字体颜色,更改Base右边的颜色即可更改背景颜色: