参考教程
1.Python Qt 图形界面编程 - 华为大叔7天带你入门 - PySide2 PyQt5 PyQt PySide:https://www.bilibili.com/video/BV1cJ411R7bP?share_source=copy_web
2.PyQt5教程,来自网易云课堂:https://www.bilibili.com/video/BV154411n79k?share_source=copy_web
教程1:侧重于使用QtDesigner进行图形界面设计,操作过程介绍详细,配有教程笔记 www.python3.vip。
教程2:前20多讲侧重于对于QtDesigner的使用,后100多讲侧重于使用python代码进行图形界面设计,并使用MacOS和Windows两种操作系统进行演示。
静态页面示例
教程1示例
动态加载ui文件
# 从文件中加载UI定义
qfile_stats = QFile("FirstSalary.ui")
qfile_stats.open(QFile.ReadOnly)
qfile_stats.close()
# 从UI定义中动态 创建一个相应的窗口对象
# 注意:里面的控件对象也成为窗口对象的属性了
# 比如self.ui.button , self.ui.textEdit
self.ui = QUiLoader().load(qfile_stats)
控件随窗口大小变化
布置完所有控件并设置好各部分布局后——选中MainWindow——鼠标右键——布局——水平/垂直/其他布局——即可实现
界面美化style-sheet与css
实现QPushButton样式设计
正常按钮
鼠标悬停
鼠标点击
QPushButton{
background-color: rgb(0, 0, 0); # 按钮背景颜色
border: 2px solid rgb(0, 0, 255); # 边框宽度2px,颜色rgb(0,0,255)
border-radius: 10px; # 圆角边框半径10px
padding: 5px 15px; # 按钮文字距边框距离
font: 75 10pt "微软雅黑"; # 文字样式
color: rgb(255, 255, 255); # 文字颜色
}
QPushButton:hover{ # 鼠标悬停
background-color: rgb(0, 0, 0);
border: 2px solid qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(0, 0, 0, 255), stop:0.05 rgba(14, 8, 73, 255), stop:0.36 rgba(28, 17, 145, 255), stop:0.6 rgba(126, 14, 81, 255), stop:0.75 rgba(234, 11, 11, 255), stop:0.79 rgba(244, 70, 5, 255), stop:0.86 rgba(255, 136, 0, 255), stop:0.935 rgba(239, 236, 55, 255)); # 已有渐变色
border-radius: 10px;
padding: 5px 15px;
font: 75 10pt "微软雅黑";
color: rgb(255, 255, 255);
}
QPushButton:pressed{ # 鼠标点击
background-color: rgb(0, 0, 0);
border: 2px solid qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 93, 0, 255), stop:0.166 rgba(255, 255, 0, 255), stop:0.333 rgba(0, 255, 167, 255), stop:0.5 rgba(0, 255, 255, 255), stop:0.666 rgba(0, 0, 255, 255), stop:0.833 rgba(251, 0, 255, 255), stop:1 rgba(255, 65, 0, 255));
border-radius: 10px;
padding: 5px 15px;
font: 75 10pt "微软雅黑";
color: rgb(255, 255, 255);
}
学习产出
参照教程1有关QtDesigner的部分总结:
PyQt5 Learning Journal:Day1
参照教程1有关python代码实现界面设计的部分总结:
PyQt5 Learning Journal:Day2
QtDesigner是一款方便设计页面的工具,在笔者学习的过程中有如下两方面的体会:
1.页面设计是为了更好地展示功能:当笔者开始独立设计一款监测系统的界面时,能够明显感受到,明确“功能”是重中之重。先想好功能,才能更好地实现布局设置和界面优化。
2.功能代码的应用必须熟练掌握:静态页面设计完成后,动态加载ui文件,可以使用python代码对控件的功能进行设置。因此,需要熟练运用python知识,笔者也要在python上修炼一番。