Russian Qt Forum
Сентябрь 30, 2024, 08:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по QDockWidget  (Прочитано 4389 раз)
crocus
Гость
« : Март 21, 2006, 15:57 »

У меня при нажатиии на кнопку появляется dock, при каждом последующем нажатии появляется еще один и так далее. С QDialog все просто
Код:

if ( dialog.exec() != QDialog::Accepted )

А как сделать тоже самое для QDockWidget???
Записан
BaltikS
Гость
« Ответ #1 : Март 21, 2006, 16:02 »

Цитата: "crocus"
У меня при нажатиии на кнопку появляется dock, при каждом последующем нажатии появляется еще один и так далее. С QDialog все просто
Код:

if ( dialog.exec() != QDialog::Accepted )

А как сделать тоже самое для QDockWidget???

А что просто? Ты что то не дописал...
Записан
crocus
Гость
« Ответ #2 : Март 21, 2006, 17:38 »

Если экземпляр диалогового окна существует новый диалог уже не откроется:
Код:

         QSqlConnectionDialog dialog( this );
           if ( dialog.exec() != QDialog::Accepted )
         return ;
Записан
crocus
Гость
« Ответ #3 : Март 22, 2006, 17:55 »

Так что никто не знает как сделать чтобы открывалось не более одного экземпляра docka??
Записан
Hordi
Гость
« Ответ #4 : Март 22, 2006, 18:06 »

Ну так проверяй - если док есть, то не создавай... ПРоверять можно как по имени, так и другими способами.
Записан
Steven_Orko
Гость
« Ответ #5 : Март 22, 2006, 23:35 »

Цитата: "crocus"
Так что никто не знает как сделать чтобы открывалось не более одного экземпляра docka??


Код:

//Возвращает TRUE в случае наличия a dock. Если a dock нету,
//то создает его. False - если a dock по каким-либо
//причинам отсутствует
static bool CreateOrCheckDock(QWidget * parent = 0, Qt::WFlags flags = 0)
{
    static QDockWidget* myDock = NULL;
    if (NULL == myDock)
    {
         myDock = new QDockWidget(parent, flags);
         if (NULL != myDock) return true;
         else return false;
    } else return true;
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 20.