GUI:图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
PyQt5常用模块:
QtWidgets:包含了一整套UI元素控件,用于建立符合系统风格的界面
QtGui:涵盖了多种基本图形功能的类(字体、图形、图标、颜色、、、)
QtCore:涵盖了包的核心的非GUI功能(时间、文件、目录、数据类型、文本流、链接、线程进程、、、)
QtWebKit
QtTest
QtSql
QtMultimedia
…
万能模块导入:可以不用具体了解类属于哪个模块,但非常占用内存
from PyQt5.Qt import *
学习内容:
一、基本程序结构
(面向过程版本)
1.导入需要的包和模块
import sys
from PyQt5.Qt import *
2.创建一个应用程序对象
app=QApplication(sys.argv)
【注】:sys.argv的主要功能在于当别人通过命令行启动这个程序时,可以设定一种功能(接收命令行传递的参数来执行不同的业务逻辑)
3.控件操作
3.1 创建控件
window=QWidget()
当我们创建一个控件后,若该控件没有副控件,则把它当作顶层控件(窗口),系统会自动给窗口添加一些修饰(标题栏)
3.2 设置控件
单个控件也可以作为一个容器,承载其他控件,因此需要添加父控件
如:
label=QLable(window)
把之前创建的空白窗口作为父控件传过来
3.3 展示控件
window.show()
4.控制退出
sys.exit(app.exec_())
可以保证应用不会退出,让应用开始执行,并进入消息循环
【注】可以检查程序退出错误码
(面向对象版本)
import sys
from PyQt5.Qt import *
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
#设置窗口标题
self.setWindowTitle("ss")
self.resize(500,600)
self.setup_ui()
#所有添加子控件的操作都放在这里
def setup_ui(self):
pass
#添加子控件代码
if __name__=="__main__":
#创建QApplication类的实例
app=QApplication(sys.argv)
main=MainWindow()
main.show()
sys.exit(app.exec_())
二、各种控件的特性和使用
控件是指一个程序界面上的各个独立的元素,具备不同的功能
常用控件包括:
1.按钮控件
QPushButton
QCommandLinkButton
QRadisButton(单选按钮)
QCheckButton
2.输入控件(文本)
2.1纯键盘输入
QLineEdit(单行输入框)
QTextEdit(多行输入框,不局限于文本,可以是图片,超链接等)
QPlainTextEdit(多行输入框,只局限于文本格式)
QKeySequenceEdit(用来采集快捷方式的)
2.2步长调节(QAbstractSpinBox)(键盘+鼠标)
QDateTimeEdit(用来采集日期时间)
可以分开为:QDataEdit和QTimeEdit
QSpinBox(简单的整型数字步长调节)
QDoubleSpinBox(浮点数字步长调节)
2.3组合框(下拉选择输入)
QComboBox
QFontComboBox(用来选择字体)
2.4滑块(QAbstractSlider)(鼠标)
QDail
QSlider
QScrollBar
2.5橡皮筋选中
QRubberBand
2.6对话框(QDialog)
QColorDislog(颜色对话框,用来选择颜色)
QFileDialog(文件对话框,用来选择文件)
QFontDialog(字体对话框,用来选择字体)
QInputDialog(输入对话框,用来接收用户输入)
2.7日期
QCalenderWidget
3.展示控件
QLabel:普通文本,数字,富文本(超链接),图片,动画
QLCDNumber
QProgressBar(进度条)
对话框QDialog
QMessageBox
QErrorMessage
QProgressDialog
4.容器控件
QToolBox
QDialogButtonBox
QGroupBox
QMidSubWindow
5.结构控件
QMainWindow
QMenuBar(菜单栏)
QToolBar(工具栏)
QToolButton
QStatusBar(状态栏)
QTabWidget(标签界面)
QStackedWidget(栈界面)
QSplitter(分割界面)
QDockWidget(让部分控件悬浮)
6.滚动控件
QAbstractScrollArea
QTextBrowser
QScrollArea
QAbstractItemView
QCloumnView
QHeaderView
QListView
QTableView
QTreeView
QMidiarea
QGraphicsView
7.辅助控件
QFocusFrame
QSizeGrip
QDesktopWidget
8.其他
8.1 向导/打印对话框
QWizard(向导界面):QWizardPage
QAbstractPrintDialog(打印界面):QPrintDialog
QPrintPreviewDialog(打印预览界面): QPrintPreviewWidget
QPageSetupDialog(页面设置)
8.2 欢迎界面(应用在软件打开之前)
QSlashScreen
8.3 功能性控件
QVideoWidget(视频展示):QCameraViewfinder(相机)
QWebEngineView(浏览器展示)
三、控件的样式
四、资源的加载
五、控件的布局
六、事件和信号
七、动画特效
八、界面跳转(多界面)
九、设计工具使用(Qt Designer)