如何防止多次打开一个窗口。
见下图:
我想要的是,如果窗口仍然打开,除了关闭打开的窗口后再次打开同一个窗口。
最后,代码:
void Widget::on_search_btn_clicked(){
searchItem *searchBox = new searchItem;
searchBox->setModal(false); // <--- I want this as it is
searchBox->show();
searchBox->activateWindow();
}
答案 0 :(得分:3)
解决方案是:
添加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;
}
答案 1 :(得分:2)