Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: karlson от Декабрь 30, 2005, 14:30



Название: как свернуть QComboBox
Отправлено: karlson от Декабрь 30, 2005, 14:30
как программно "свернуть" комбобокс
для его разорачивания использовался метод popup().
а есть ли что нить обратное ему?


Название: как свернуть QComboBox
Отправлено: Racheengel от Декабрь 30, 2005, 14:40
может close()?


Название: как свернуть QComboBox
Отправлено: zlatko от Декабрь 30, 2005, 14:47
или setCurrentItem()  :roll:


Название: как свернуть QComboBox
Отправлено: karlson от Декабрь 30, 2005, 21:42
close() не подходит
а вот SetCurrentItem() - попробую

добавлено спустя 1 час 4 минуты:

 SetCurrentItem() - не работает.
понять не могу куда копать =(


Название: как свернуть QComboBox
Отправлено: Dendy от Январь 03, 2006, 10:21
Код:
QWidget * popupWidget = qApp->activePopupWidget();
if ( popupWidget )
  popupWidget->close();


Название: как свернуть QComboBox
Отправлено: karlson от Январь 04, 2006, 23:17
popupWidget - это я так понимаю мой комбо бокс
а qApp - это класс приложения который описывается в main.cpp?


Название: как свернуть QComboBox
Отправлено: Steven_Orko от Январь 04, 2006, 23:51
Нет, qApp - это глобальная переменная. См. Assistent


Название: как свернуть QComboBox
Отправлено: Dendy от Январь 05, 2006, 10:01
popupWidget - текущее активное вьІпадающее окно, в данном случае - список от комбо-бокса. Вообще не самьІй хороший способ. Пробуй осё:

Код:
if ( myComboBox->view() )
    myComboBox->view()->close();


Название: как свернуть QComboBox
Отправлено: karlson от Январь 05, 2006, 23:45
Код:
if ( myComboBox->view() )
    myComboBox->view()->close();
[/quote]

вот что говорят

.ui/../mainform.ui.h:131: error: 'class QComboBox' has no member named 'view'


Название: как свернуть QComboBox
Отправлено: Dendy от Январь 06, 2006, 09:59
А яка версія Qt ?


Название: как свернуть QComboBox
Отправлено: karlson от Январь 06, 2006, 14:54
3.3.4
сорри что сразу не написал

а можно поподробнее насчет qApp


Название: как свернуть QComboBox
Отправлено: Dendy от Январь 06, 2006, 15:19
Як маленькі. У Qt 3.3:

Код:
if ( myComboBox->listBox() )
    myComboBox->listBox()->close();


Название: как свернуть QComboBox
Отправлено: karlson от Январь 06, 2006, 16:18
вот код и почему то не работает
=(((

void mainform::keyPressEvent( QKeyEvent *e )
{   
    int kla = e->key();
    switch (kla) {
    case Key_F11:   {
       check_comboboxes();
       LeftDriveBox->popup();
       break;    
       }
    case Key_F12:   {
       check_comboboxes();
       RightDriveBox->popup();  
       break;
   }
    }
}


void mainform::check_comboboxes()
{
    if ( LeftDriveBox->listBox() ) {   
   LeftDriveBox->listBox()->close();
    }
        if ( RightDriveBox->listBox() ) {   
   RightDriveBox->listBox()->close();
    }

}


Название: как свернуть QComboBox
Отправлено: Dendy от Январь 06, 2006, 18:14
Qt 4:

Код:
if ( myComboBox->listBox() ) 
    myComboBox->listBox()->window()->close();


Название: как свернуть QComboBox
Отправлено: karlson от Январь 06, 2006, 18:33
у мя qt 3.3.4


Название: как свернуть QComboBox
Отправлено: Dendy от Январь 06, 2006, 19:42
Дик, на Qt 3.3 це буде майже так само:

Код:
if ( myComboBox->listBox() )
    myComboBox->listBox()->topLevelWidget()->close();


Перевіряв сам, працює. Але все ж таке краще через QApplication.


Название: как свернуть QComboBox
Отправлено: karlson от Январь 06, 2006, 21:36
спасибо все работает )