2011-10-19 10 views
20

Sadece bir radyo düğmesi seçildiğinde bir grup kutusu açmak istiyorum.
Bunu, radyo düğmesinin toggled(bool) sinyalini grup kutusunun setShown(bool) yuvasına bağlayarak yapmayı başardım.
Sorun şu ki, radyo düğmesi ilk olarak seçimden kaldırılmış, ancak grup kutusu başlangıçta gösterilmiş olduğundan, kaybolması için radyo düğmesini seçmem/seçmem gerekiyor.
Grup kutusunda, Qt Creator Designer'da başlangıçta görünmez bir şekilde kod içinde yapmak zorunda kalmam mümkün mü?Qt Creator'da başlangıçta gizli kontrol

cevap

37

Yapamazsınız.

visible özelliği, Qt Designer'ın özellik düzenleyicisinden gönüllü olarak kaldırılmış gibi görünüyor ve ekleyemiyorsunuz.

Sen widget için düğüm içinde aşağıdaki XML bloğunu ekleyerek .ui dosyaya el özelliğini ekleyebilir

gizlemek istediğiniz:

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

Ama Widget görünür veya hareketli olmayacak arayüzü tasarımcıyla yeniden açarsınız. Yine de widget hiyerarşisinde görünecektir.

4

Özellikler ile birlikte çalışmayı deneyebilirsiniz (setHidden'a bakın), ancak kodda bunu yapmak çok daha kolaydır.

Yani yaparım: gerçekten kolay yolu var

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

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

, Qt zaten kullandığı Designer'daki özelliklerini ekleyerek çok şans olmadı.

+0

Bunu zaten yaptım, alternatif bir yol arıyordum. özel yuva gereksizdir, 'setShown (bool)' 'a bağlı 'değiştirilmiş (bool)' doğru çalışır. – Dani

+0

Bu durumda, setHidden/setShown özelliğini uygulamak için Designer'daki özellikler düzenleyicisine bir kazı yapmayı öneririm. –

+0

Çok teşekkür ederim. İşe yarıyor. – oya163