如何防止多次打开窗口。
参见下图:
我想要的是,如果仍然打开的窗口不会再次打开同一个窗口,除非关闭打开的窗口后。
最后是代码:
void Widget::on_search_btn_clicked(){
searchItem *searchBox = new searchItem;
searchBox->setModal(false); // <--- I want this as it is
searchBox->show();
searchBox->activateWindow();
}
最佳答案
解决方案是:
添加
searchItem *searchBox
作为类的成员。private: searchItem* m_searchBox;
在构造函数中使用
new searchItem()
进行初始化。Widget::Widget() { ... m_searchBox = new searchItem(); }
调用
void Widget::on_search_btn_clicked()
并使用m_searchBox
上的函数(因此,这是唯一将打开的窗口,即使它已经打开了)void Widget::on_search_btn_clicked(){ m_searchBox->setModal(false); m_searchBox->show(); m_searchBox->activateWindow(); }
在析构函数中删除
Widget::~Widget() { ... delete m_searchBox; }
关于c++ - 检查对话框/小部件/窗口是否仍然打开以防止重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26308750/