Изначально скрытый контроль в Qt Creator - PullRequest
24 голосов
/ 19 октября 2011

Я хочу, чтобы групповое поле отображалось только при выборе радиокнопки.
Мне удалось сделать это, подключив сигнал toggled(bool) радиокнопки к гнезду setShown(bool) группового блока.
Проблема в том, что радиокнопка изначально не выбрана, но изначально отображается групповое поле, поэтому мне нужно выбрать / отменить выбор радиокнопки, чтобы она исчезла.
Можно ли как-нибудь сделать групповое поле изначально невидимымQt Creator Designer без необходимости делать это в коде?

Ответы [ 2 ]

46 голосов
/ 21 октября 2011

Вы не можете.

Кажется, что свойство visible добровольно удалено из редактора свойств Qt Designer, и вы не можете добавить его обратно.

Вы можете добавить свойство вручную в файл .ui, добавив следующий блок XML внутри узла для виджета, который вы хотите скрыть:

<property name="visible">
   <bool>false</bool>
</property>

Но виджет не будет видимым или подвижным при повторном открытии интерфейса с дизайнером. Он все равно будет отображаться в иерархии виджетов.

4 голосов
/ 19 октября 2011

Вы можете попробовать поиграть со свойствами (посмотрите на setHidden), но это гораздо проще сделать в коде.

Итак, вы бы сделали:

ui setup code
ui->groupBox->setHidden(true)

radio button slot
if true ui->groupBox->setHidden(false)
else if false ui->groupBox->setHidden(true)

Это самый простой способ, мне никогда не удавалось добавить свойства в Designer, которые уже используются Qt.

...