У меня есть настраиваемый кнопочный набор для запуска/закрытия виджета диалогового окна, который я создал.Виджеты Qt PushButton exec
Моя идея - когда кнопка установлена, она закроет виджет диалогового окна. Если он не установлен, он должен открыть виджет диалогового окна. Но я не могу заставить его работать. Он продолжает открывать экземпляры диалогового виджета. Я хотел открыть только один экземпляр диалогового виджета. Может ли кто-нибудь помочь?
MainDlg::MainDlg()
{
connect(dialogButton, SIGNAL(clicked()), this, SLOT(setDialog()));
}
void MainDlg::setDialog()
{
SetDialogDlg setDlg;
if(dialogButton->isChecked())
{
setDlg.close();
}
else
{
setDlg.exec();
}
}
Thanks thuga! Он работает прямо сейчас. Однако он работает в первый раз. Я нажал на кнопку, она показывает. Следующий щелчок скрывает диалог в фоновом режиме. Но следующий щелчок не отображает диалоговое окно. Это как-то связано с моей инструкцией if-else? – Wallace
@Wallace Он должен работать. Я тестировал код с тем же оператором 'if', и он отлично работает. Вы можете использовать класс [QDebug] (http://qt-project.org/doc/qt-5.0/qtcore/qdebug.html), чтобы проверить, работают ли операторы 'if'. Просто добавьте 'qDebug() <<" внутри if ";' внутри оператора 'if' и' qDebug() << "внутри else;' внутри оператора 'else'. Не забудьте включить заголовок:' #include ' –
thuga
Извините @thuga. Моя ошибка. Я решил это. Спасибо, куча! :) У вас есть идея, как сделать эффект слайда/слайда или эффекта затухания? (Предположим, у меня есть подходящая панель инструментов. Я нажимаю на кнопку на панели инструментов, диалоговое окно виджета будет иметь «выдвижная» эффект на панели инструментов. при нажатии на кнопку еще раз, диалог виджет будет «вставные» на панели инструментов) – Wallace