2013-05-13 70 views
0

這是我第一次使用Qt創建GUI。 在有很多組框的應用程序中,我想讓它們都啓用「平面」屬性。 有沒有辦法改變同一類型的每個小部件的默認值?是否可以設置Qt控件的默認屬性?

我知道通過創建一個基於QGroupBox小部件的新類可以達到同樣的效果,但我的目標是用盡可能少的代碼實現它。

+0

您可以從Qt Designer中設置它們的屬性。這是你想要的? – sashoalm 2013-05-13 15:52:31

+0

我可以在Qt Designer中設置它們的屬性,但它仍然會更改每個小部件的值,但它仍然會爲每個現有小部件創建一行代碼。我寧願單行代碼覆蓋每個部件的默認值... – PhilMacKay 2013-05-13 15:56:47

+0

然後,您必須繼承QGroupBox的子類。沒辦法避免它。那麼,或者你應該改變他們的值,@ pnezis的代碼會做的很好,儘管它實際上並沒有改變「默認」值。 – sashoalm 2013-05-13 15:58:53

回答

2

C++代碼如下。應該直接轉到Python中的端口。

設置好小部件的UI後,請執行以下操作。

QList<QGroupBox *> groupboxes = this->findChildren<QGroupBox *>(); 
for (int i=0; i<groupboxes.count(); i++) 
    groupboxes[i]->setFlat(true); 
+0

這似乎是我正在尋找!儘管如此,我並不熟悉C++,但我很難翻譯它。如果有人能拿出一個Python翻譯(包括我自己),我會接受你的答案。 – PhilMacKay 2013-05-13 16:11:13

+0

找到了! Python代碼是'list = self.findChildren(QtGui.QGroupBox);對於列表中的項目:item.setFlat(True)' – PhilMacKay 2013-05-15 16:07:30

相關問題