2013-11-29 2 views
0

Мне нужно создать приложение, которое будет работать с базой данных, и мне нужно подключить QCombobox с помощью lineEdits (1,2,3). У меня QComboBox с двумя элементами (1,2), и я хочу спрятать lineEdits (2,3), когда я перехожу на элемент 2. И когда я возвращаюсь к элементу 1, я хочу показать lineEdits (2,3) и скрыть строкуEdit 1. Кто-нибудь может мне помочь? :-) Спасибоhide and show lineEdit с QComboBox в Qt

ответ

0

Вы просто подключаете сигнал currentIndexChanged (int index) вашего QComboxBox к слоту своего класса и скрываете/показываете QLineEdit в зависимости от значения индекса.

QObject::connect(myComboxBox, SIGNAL(currentIndexChanged(int)), 
     this, SLOT(onComboxBoxCurrentIndexChanged(int))); 

Щель может быть реализован следующим образом:

MyClass::onComboxBoxCurrentIndexChanged(int index) 
{ 
    if(index == 0){ 
    lineEdit1->setVisible(false); 
    lineEdit2->setVisible(true); 
    lineEdit3->setVisible(true); 
    } 
    else{ 
    lineEdit1->setVisible(true); 
    lineEdit2->setVisible(false); 
    lineEdit3->setVisible(false); 
    } 
} 

Обратите внимание, что ваш класс должен быть подкласс QObject для слота работать. Если вы не знаете, как работают сигналы и слоты, я бы рекомендовал сначала прочитать учебник.

См. http://qt-project.org/doc/qt-4.8/signalsandslots.html