第一章 PyQt5 GUI程序框架

简介:

Dialog模板,基于QDialog类的窗体,具有一般对话框的特性,例如:模态显示,具有返回值等。

Main Window模板,基于QMainWindow类的窗体,具有主窗口的特性,窗口上有主菜单栏,工具栏,状态栏等。

Widget模板,基于QWidget类的窗体。QWidget类是所有界面组件的基类,如QLabel,QPushButton等界面组件都是从QWidget类继承而来的。QWidget类也是QDialog和QMainWindow的父类,基于QWidget类创建的窗体可以作为独立的窗口运行,也可以嵌入到其他界面组件内显示。

app = QtWidgets.QApplication(sys.argv)
#创建app,用QApplication类

这里使用了QtWidgets模块中的QApplication类。QApplication是管理GUI应用程序的控制流程和设置的类,这里创建的应用程序对象是app。

widgetHello = QtWidgets.QWidget()      #创建窗体,用QWidget类
widgetHello.resize(280,150)            #设置窗体的宽度和高度
widgetHello.setWindowTitle("Demo2_1")  #设置窗体的标题文字

使用QtWidgets模块中的QWidget类创建了窗体对象widgetHello,然后调用QWidget类的resize()函数设置窗体大小,调用setWindowTitle()设置窗体标题。

labHello = QtWidgets.QLabel(widgetHello)  #创建标签,父容器为widgetHello
labHello.setText("Hello World,PyQt5")     #设置标签文字
font = QtGui.QFont()                      #创建字体对象font,用QFont类
font.setPointSize(12)                     #设置字体大小
font.setBold(Ture)                        #设置粗体
labHello.setFont(font)                    #设置为标签LabHello的字体
size=LabHello.sizeHint()                  #获取LabHello的合适大小,返回值是QSize类对象
LabHello.setGeometry(70,60,size.width,size.height) 

使用QtWidgets模块中的QLabel类创建了一个标签对象LabHello。

这里将widgetHello作为参数传递给QLabel的构造函数,实际是指定widgetHello作为LabHello的父容器,这样标签LabHello才会显示在窗体widgetHello上。

后面的代码用QLabel的接收函数setText()设置标签的文字,又创建了一个QFont对象用于设置标签的字体,还设置了标签在窗体上的位置和大小。

widgetHello.show() #显示对话框
sys.exit(app.exec_()) #应用程序运行

例如下列是UI转.py文件的解读:

class Ui_FormHello(object):
    def setupUi(self,FormHello):
        FormHello.setObjectName("FormHello")
        FormHello.resize(283,156)

1,Ui_FormHello类的父类是object,而不是QWidget。

2,Ui_FormHello类定义了一个函数setupUi(self,FormHello),传入的参数self,相当于C++语言中的this指针;FormHello是一个传入的参数,而不是在Ui_FormHello类中定义的一个变量。

3,所以综上所述,FormHello是窗体,是一个QWidget对象,其名称就是在UI Designer里设计的窗体objectName。但是这个FormHello不是在类Ui_FormHello里创建的,而是作为一个参数传入的。

self.LabHello = QtWidgets.QLabel(FormHello)

LabHello定义为Ui_FormHello类的一个公共属性,它的父容器是FormHello,所以LabHello在窗体FormHello上显示,后面的语句又设置了LabHello的显示位置,大小,以及字体属性。 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值