天天看點

pyqt的setObjectName()/findChild()

根據設定的Name标示查找元件的對象,關鍵函數:setObjectName()/findChild()

findChild()/2:需要兩個參數,

  參數一:元件的類型,如QLineEdit、QPushButton。

  參數二:setObjectName()設定的Name标示。

個人注解:

  背景描述:

    目前屬于初級階段,各種了解都不太全面。

  場景描述:

        一個widget容器(視為parent)通過設定layout添加了很多元件,比如button,input,

      通過設定parent.button_1,parent.input_2儲存對象,容器中的元件多了很亂的,比如某個事件觸發了需要擷取多個input.text(),

      現階段掌握的知識隻能通過parent.input_1.text()、parent.input_2.text()、parent.input_3.text()擷取.

改進方案:

  ①、如果能建立各個元件的Name标示群組件的類型的映射關系,則可直接通過findChild(map_nameId_type,nameId)找到元件。

  ②、直接建立元件對象NameId群組件對象的映射,map(key-value),隻占用widget的自定義子類的類型為dictionary一個屬性,

                  (在寫方案①的時候想到的,原始方案太挫了、、、、突然有點喜歡上python的弱類型,Java的強類型的思維模式習慣了)

方案②、