2014-09-06 61 views
1

是否可以標記Qt Widgets?我正在編程生成QPushButtons,據我所知,沒有辦法區分它們。我檢查了文檔,找不到任何東西。什麼是替代方案?標記Qt Widgets

for(int i = 0; i < 6; i++) { 
     QPushButton *s = new QPushButton("Select"); 
     ... 
    } 
+0

請參閱我的編輯。我改進了一點我的答案,也許你覺得它有用。 – Chernobyl 2014-09-06 11:09:26

+0

非常感謝。這正是我之後:) – 2014-09-06 11:34:15

回答

3

最好的方法是將對象名稱設置爲這個按鈕。例如。

for(int i = 0; i < 6; i++) { 
    QPushButton *s = new QPushButton("Select"); 
    s->setObjectName("But" + QString::number(i)); 
} 

您也可以setProperty()到按鈕和property()方法在將來閱讀

編輯:

而且可以設置不是唯一對象名排序。假設你想爲某些按鈕設置背景顏色。然後你不應該爲你自己應用樣式表。只需將相同的objectName設置爲此按鈕即可。

for(int i = 0; i < 6; i++) { 
    QPushButton *s = new QPushButton("Select"); 
    if(i%2 == 0) 
     s->setObjectName("red"); 
} 

並申請旁邊的styleSheet

#red 
{ 
    background-color: red 
} 

而這個按鈕會以紅色噴漆。

+1

有關詳細信息,請參閱:http://qt-project.org/doc/qt-5/qobject.html#objectName-prop – Eric 2014-09-06 04:14:28