2011-10-19 21 views
20

Desidero rendere visibile una casella di gruppo solo quando viene selezionato un pulsante di opzione.
Sono riuscito a farlo collegando il segnale toggled(bool) del pulsante di opzione allo slot setShown(bool) della casella di gruppo.
Il problema è che il pulsante di opzione viene inizialmente deselezionato ma la casella di gruppo viene inizialmente visualizzata, quindi devo selezionare/deselezionare il pulsante di opzione per farlo scomparire.
C'è un modo per rendere la casella di gruppo inizialmente invisibile in Qt Creator Designer senza doverla fare in codice?Controllo inizialmente nascosto in Qt Creator

risposta

37

Non è possibile.

La proprietà visible sembra essere stata rimossa volontariamente dall'editor proprietà di Qt Designer e non è possibile aggiungerla nuovamente.

È possibile aggiungere la proprietà manualmente al file .ui aggiungendo il seguente blocco XML all'interno del nodo per il widget che si desidera nascondere:

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

Ma il widget non saranno visibili o mobili quando si riapre l'interfaccia con il progettista. Verrà comunque visualizzato nella gerarchia del widget.

4

Puoi provare a giocare con le proprietà (guarda setHidden), ma è molto più facile farlo nel codice.

Quindi faresti:

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

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

Questo è il modo più semplice in realtà, non ho mai avuto molta fortuna con l'aggiunta di proprietà in Designer che Qt già utilizza.

+0

Ho già fatto questo, stavo cercando un modo alternativo. lo slot personalizzato non è necessario, 'toggled (bool)' collegato a 'setShown (bool)' funziona correttamente. – Dani

+0

In tal caso, suggerirei di fare uno scavo nell'editor delle proprietà in Designer per implementare la proprietà setHidden/setShown. –

+0

Grazie mille. Funziona. – oya163