Есть MainWindow, и есть OtherWindow.
В основном окне есть кнопочка, которая создаёт другое окно. Сделать: если OtherWindow уже открыто, то игнорировать нажатие кнопочки в основном окне.
/**************************************/
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
otherWindowOpened = false;
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(pushButtonClicked()));
}
/**************************************/
void MainWindow::pushButtonClicked(void)
{
if(!otherWindowOpened)
{
ow = new OtherWindow;
connect(ow, SIGNAL(destroyed(QObject*)), this, SLOT(otherWindowDestroyed(QObject*)));
ow->show();
otherWindowOpened = true;
}
else
{
printf("other window is opened\n");
}
}
/**************************************/
void MainWindow::otherWindowDestroyed(QObject*)
{
printf("destroing other window\n");
otherWindowOpened = false;
}
#############
#############
#############
OtherWindow::OtherWindow(QWidget *parent) :
QDialog(parent),
m_ui(new Ui::OtherWindow) .....
Жму кнопочку. Отображается OtherWindow. Закрываю. Ещё раз жму - «other window is opened»