python之pyqt专栏4-代码控制部件

   通过前面的学习,我们已经回创建新的pyqt项目、对项目结构有了了解、也了解Qt Designer设计UI界面并 把"xx.ui"转换为“xxx.py”。

 pyqt模块与类

      pyqt6 由模块组成,而模块里面又有很多的类

       在pyqt官网Modules — PyQt Documentation v6.6.0页面,可以看到如下模块

python之pyqt专栏4-代码控制部件_第1张图片

        而在QtWidgets中各个类,则是我们最为关心的UI界面部件,在这里你可以看到QPushButton,QLabel,QLineEdit等等部件。而这些类中有一个基类Qwidget,它继承于QObject

QPaintDevice

        注:QtWidgets是模块,Qwidget是QtWidgets的一个类,Qwidget又是其他部件的基类(或者叫父类)

python之pyqt专栏4-代码控制部件_第2张图片

创建项目

        UI界面设计

        在Qt Designer以界面里面放2个Label(对象名分别是:labellabel_2),2个button(对象名分别是:pushButtonpushButton_2),保存“ui”文件,然后将“ui”文件转为“py”文件

python之pyqt专栏4-代码控制部件_第3张图片

        创建main.py
import sys
from PyQt6.QtWidgets import   QApplication,QWidget
from untitled import Ui_Form
class MyWidget(QWidget,Ui_Form):
    def __init__(self):
        super(MyWidget,self).__init__()
        self.setupUi(self)     

if __name__ == "__main__":
    app = QApplication(sys.argv)
    Form = MyWidget()

    Form.show()
    sys.exit(app.exec())
        运行

python之pyqt专栏4-代码控制部件_第4张图片

代码控制部件

        在main.py修改成如下

import sys
from PyQt6.QtWidgets import   QApplication,QWidget
from  PyQt6.QtGui import QFont
from untitled import Ui_Form
class MyWidget(QWidget,Ui_Form):
    def __init__(self):
        super(MyWidget,self).__init__()
        self.setupUi(self)
        # 设置Label的文本内容
        self.label.setText("哈哈")

        #获取label的文本内容
        str = self.label_2.text()
        # 将获取label_2内容打印输出
        print("pushButton_2.text:", str)

        # 设置pushButton的文本内容
        self.pushButton.setText("clicked me")

        # 获取pushButton_2的文本内容
        str = self.pushButton_2.text()
        # 将获取pushButton_2内容打印输出
        print("pushButton_2.text:",str)



if __name__ == "__main__":
    app = QApplication(sys.argv)
    Form = MyWidget()

    Form.show()
    sys.exit(app.exec())

    MyWidget继承了Ui_Form,label ,label_2,pushButton,pushButton_2,也会被继承过来。

        当运行self.label.setText("哈哈"),将label的文本框内容将会被修改。

        当运行str = self.label_2.text(),获取label_2的文本内容。

  这样我们就可以代码中部件了,pushButton,pushButton_2同理。
       

部件函数的位置的差异

QtWidgets模块中找到QLabel类QPushButton类

python之pyqt专栏4-代码控制部件_第5张图片

QLabe类中,我们可以看到text()setText()函数

python之pyqt专栏4-代码控制部件_第6张图片

QPushButton类中,我们找不到text()setText()函数,但是在它的父类中找到text()setText()函数

python之pyqt专栏4-代码控制部件_第7张图片

python之pyqt专栏4-代码控制部件_第8张图片

         虽然QLabelQPushButton都有text()setText(),但是它们位置不太一样,对于QLabel来说,text()setText()就在QLabel类中,而QPushButton来说,text()setText()就在父类(QAbstractButton)中

       因此当我们需要通过代码控制部件时,需要在类中或者在父类中找到相关的函数,对它进行调用。

        

             

         

你可能感兴趣的:(PyQt,pyqt)