PyQt5编程基础 2.1 GUI程序的基本框架-使用窗体类的GUI程序框架

2023-11-28 02:08:46 浏览数 (1)

使用窗体类的GUI程序框架

使用第一次实训中创建的类Ui_FormHello来构建GUI应用程序

创建项目目录

e:baikejiabkj2-2

新建Eric6项目

建好后,应该是这样

新建一个Qt项目QtApp

类名命名为FormHi,注意Base class选择QWidget

窗体设计

修改窗体的windowTitle

可以把鼠标放到窗体右下角,光标会变成箭头,移动箭头可以改变窗体大小

放一个label

命名为LabHi

设置text属性,改一下字体,让它好看些

改一下对齐格式

完成后,窗体应该是这样的

放一个Push Button

命名为btnClose,text设置为“关闭”,修改font让它好看

保存窗体

窗体设计完成

代码设计

将QtApp中的ui文件复制到项目目录

添加Form

点击Forms

点右键

选择Add Forms,将form加进去

编译form

右键点ui文件,选择compile form

编译完,点回sources

会发现ui文件编译后的py文件已经生成了

打开代码编辑器

双击py文件,可看到文件的内容

试着直接运行

运行结果

这时,按关闭按钮无反应,因为还没有代码

使用单继承方式调用这个窗体类

新建一个appMain.py文件

输入如下内容

代码语言:javascript复制
import sys
sys.path.append("E:baikejiabkj2-2")

from PyQt5.QtWidgets import  QWidget, QApplication

from Ui_FormHi import Ui_FormHi

class QmyWidget(QWidget): 
   def __init__(self, parent=None):
      super().__init__(parent)   #调用父类构造函数,创建QWidget窗口

      self.__ui=Ui_FormHi()   #创建UI对象
      self.__ui.setupUi(self)    #构造UI界面
      self.Lab="新标签"
      self.__ui.LabHi.setText(self.Lab)

   def setBtnText(self, aText):
      self.__ui.btnClose.setText(aText)
        
    
if  __name__ == "__main__":
   app = QApplication(sys.argv)   #创建App,用QApplication类

   myWidget=QmyWidget()
   myWidget.show()
   myWidget.setBtnText("新名称")
   sys.exit(app.exec_())

运行appMain

这时候点击按钮没有反应,应为没有代码

实现信号与槽函数的关联

Qt Creator中找函数名

Qt Creator编辑器里面,左键选中按钮,点击右键,点击转到槽

选择clicked()

自动弹出FormHi.cpp窗口,复制函数名

在Qt Creator中无需输入代码,转入Eric6

在py文件中关联信号与槽函数

在Ui_FormHi.py的SetUi函数的最后添加一行代码

这段代码的作用是把btnClose按钮的clicked()信号与FormHi的close()槽函数关联起来。这样按下按钮,相当于告诉它要关闭

运行appMain

按下按钮,窗口关闭

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞