2011-10-19 23 views
20

Quiero hacer que se muestre un cuadro de grupo solo cuando se selecciona un botón de opción.
Logré hacer eso conectando la señal toggled(bool) del botón de opción a la ranura setShown(bool) del cuadro de grupo.
El problema es que el botón de opción se deseleccionó inicialmente pero el cuadro de grupo se muestra inicialmente, así que tengo que seleccionar/deseleccionar el botón de opción para que desaparezca.
¿Hay alguna manera de hacer que el cuadro de grupo sea inicialmente invisible en Qt Creator Designer sin tener que hacerlo en el código?Control inicialmente oculto en Qt Creator

Respuesta

37

No puede.

La propiedad visible parece ser eliminada voluntariamente del editor de propiedades de Qt Designer y no puede volver a agregarla.

Puede añadir la propiedad manualmente al archivo .ui añadiendo el siguiente bloque de XML dentro del nodo para el widget que desea ocultar:

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

Pero el widget no serán visibles o móviles cuando vuelves a abrir la interfaz con el diseñador. Sin embargo, aún aparecerá en la jerarquía de widgets.

4

Puede intentar jugar con las Propiedades (consulte setHidden), pero es mucho más fácil hacerlo en el código.

Por lo que haría:

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

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

Esa es la forma más fácil de verdad, nunca he tenido mucha suerte con la adición de propiedades en el Diseñador de Qt que ya utiliza.

+0

Ya lo hice, estaba buscando una forma alternativa. la ranura personalizada no es necesaria, 'toggled (bool)' conectado a 'setShown (bool)' funciona correctamente. – Dani

+0

En ese caso, sugeriría que profundice en el editor de propiedades en Designer para implementar la propiedad setHidden/setShown. –

+0

Muchas gracias. Funciona. – oya163