PyQt5从入门到实践——Chapter3 第一个PyQt5窗口程序

概述

了解Qt Designer并设计第一个主窗口,转换为.py脚本后运行显示窗口。

PyQt5从入门到实践——Chapter3 第一个PyQt5窗口程序_第1张图片

1.新建窗口

在Pycharm菜单栏中展开Tools—External Tools中提前配置的Qt Designer(或打开提前发送到桌面的designer.exe),显示出“新建窗体”(如图),其中Main Window窗口是PyQt5设计GUI程序时最常用的窗口,PyQt5从入门到实践这本书的所有案例都以创建Main Window窗口为基础进行展开。

PyQt5从入门到实践——Chapter3 第一个PyQt5窗口程序_第2张图片

2.熟悉Qt Designer窗口区域

新建窗体中选择Main Window即可创建第一个主窗口,Qt Designer设计器的几个主要组成部分如图。

菜单栏和工具栏为中文不作详细说明;

工具栏是设计时最常用的部分,需要哪个控件直接拖动到窗口设计区域即可(这部分控件较多不一一展开,后续根据需求进行使用);

对象查看器用来查看设计窗口放置的对象列表;属性编辑器可对窗口(中的对象)控件和布局等属性进行修改和设置;资源浏览器中可为控件添加图片,图标等资源。

PyQt5从入门到实践——Chapter3 第一个PyQt5窗口程序_第3张图片

3.创建并运行第一个窗口程序

(1) 同1中,打开Qt Designer—新建窗体(选择Main Window)—创建;

(2)主窗口默认只有一个菜单栏和一个状态栏,本例中随机拖动一个Push Button和RadioButton到窗口进行练习,按Ctrl+R可预览窗口效果;

(3) 保存.ui文件到指定位置(Qt Designer设计完默认为.ui格式);

(4) .ui文件转换为.py文件:在Pycharm的项目导航窗口中选择保存的.ui文件,选择菜单栏—Tools—External Tools—PyUIC菜单,即可生成与.ui命名相同的.py文件(文件默认命名为“untitled”,可自行修改);

(5)运行主窗口,转换成功的.py脚本文件夹没有程序入口还不能运行,因此需要通过判断名称是否为__main__来设置程序入口,并通过MainWindow对象的show()函数来显示,代码如下:

import sys
#程序入口,程序从此处启动PyQt设计的窗体
if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()    #创建窗体对象
    ui = Ui_MainWindow()        #创建PyQt设计的窗体主体
    ui.setupUi(MainWindow)      #调用PyQt窗体的方法对窗体对象进行初始化设置
    MainWindow.show()       #显示窗体
    app.exit(app.exec_())   #程序关闭时退出程序

完整代码

运行.py即可显示第一个窗口程序

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets
import sys

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(417, 322)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(210, 110, 91, 31))
        self.pushButton.setObjectName("pushButton")
        self.radioButton = QtWidgets.QRadioButton(self.centralwidget)
        self.radioButton.setGeometry(QtCore.QRect(90, 110, 91, 31))
        self.radioButton.setObjectName("radioButton")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 417, 27))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "PushButton"))
        self.radioButton.setText(_translate("MainWindow", "RadioButton"))


#程序入口,程序从此处启动PyQt设计的窗体
if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()    #创建窗体对象
    ui = Ui_MainWindow()        #创建PyQt设计的窗体主体
    ui.setupUi(MainWindow)      #调用PyQt窗体的方法对窗体对象进行初始化设置
    MainWindow.show()       #显示窗体
    app.exit(app.exec_())   #程序关闭时退出程序

你可能感兴趣的:(PyQt5从入门到实践,学习笔记,qt,python,开发语言,qt5)