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

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

 pyqt模块与类

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

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

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

QPaintDevice

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

创建项目

        UI界面设计

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

        创建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())
        运行

代码控制部件

        在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类

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

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

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

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

        

             

         

  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颖川初尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值