1. 程式人生 > 其它 >2.1 QObject基類使用教程-- QObject物件名稱設定和屬性

2.1 QObject基類使用教程-- QObject物件名稱設定和屬性

一、 QObject物件名稱設定和屬性

1.基礎知識

  • 建立物件:obj=QObject()
  • 設定名稱:obj.setObjectName('name')
  • 設定屬性和值:obj.setProperty('level1','第一')
  • 獲取名稱或屬性值(去除set):print(obj.objectName()),print(obj.property('level1'))
  • 獲取所有setProperty()設定屬性的物件和屬性名稱:print(obj.dynamicPropertyNames())

2.程式碼

''
        obj = QObject()
        obj.setObjectName('name')  # 設定一個唯一名稱
        print(obj.objectName())

        obj.setProperty('level1','第一')  # 給物件新增一個屬性和值  用在QSS裡
        obj.setProperty('level2','第二')
        print(obj.property('level2'))

        print(obj.dynamicPropertyNames())   # 獲取所有setProperty()設定屬性的物件和屬性名稱
'''


from PyQt5.Qt import *
import sys


class Window(QWidget) :
    def __init__(self) :
        super().__init__()
        self.setWindowTitle("object物件")
        self.resize(600, 500)
        self.func_list()

    def func_list(self) :
        self.func()
        self.func1()

    def func(self) :
        obj = QObject()
        obj.setObjectName('第一個Object物件') #設定名稱 識別符號不顯示在窗口裡
        print(obj.objectName())

    def func1(self) :
        obj1 = QObject()
        obj1.setProperty('level1', '第一')  #設定屬性和值
        obj1.setProperty('level2', '第二')
        print(obj1.property('level1'))  #去除set就是獲取level1對應的值
        print(obj1.dynamicPropertyNames()) #獲取所有setProperty()設定屬性的物件和屬性名稱  用的比較少


if __name__ == '__main__' :
    app = QApplication(sys.argv)
    window = Window()
    # print(window.windowTitle())

    window.show()
    sys.exit(app.exec_())

3.執行結果

  • 視窗

  • 控制檯