2013-05-13 5 views
0

Это мой первый раз, когда я создавал графический интерфейс с использованием Qt. В приложении, где есть много групповых ящиков, я хотел бы, чтобы все они имели свойство «flat». Есть ли способ изменить значение по умолчанию для каждого виджета того же типа?Можно ли установить свойство по умолчанию для виджета Qt?

Я знаю, что было бы возможно добиться того же, создав новый класс на основе виджета QGroupBox, но моя цель - на самом деле сделать это с наименьшим количеством кодирования.

+0

Вы можете установить их свойства из Qt Designer. Это то, что вы ищите? – sashoalm

+0

Я могу установить их свойства в Qt Designer, но он по-прежнему изменяет значение каждого виджета, но он все равно будет создавать строку кода для каждого существующего виджета. Я бы предпочел, чтобы одна строка кода перезаписывала значение по умолчанию для каждого виджета ... – PhilMacKay

+0

Затем вы должны подклассифицировать QGroupBox. Нет способа избежать этого. Это, или вы просто должны изменить свое значение, код @ pnezis сделает все для этого, даже несмотря на то, что он фактически не изменяет значение по умолчанию. – sashoalm

ответ

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

+0

Нашел! Код Python: 'list = self.findChildren (QtGui.QGroupBox); для элемента в списке: item.setFlat (True) ' – PhilMacKay

Смежные вопросы