2015-07-20 27 views
0

我想知道是否有其他方式调用窗口一次,而不是再次调用所需的窗口。这是我使用的代码:如何用Qt调用窗口一次

void secondWindow::on_pushButton_clicked() 
{ 
    MainWindow *mainwindow; 
    mainwindow = new MainWindow(this); 
    mainwindow->show(); 
} 

当你点击pushButton,它不断再生新的窗口。那么有没有一种方法可以在单击pushButton时显示相同的MainWindow?

+0

,而不是创建一个新的主窗口试试主窗口=的QApplication :: activeWi ndow()它应该retour你当前的窗口。 –

回答

0

下面会做你想要

void secondWindow::on_pushButton_clicked() 
{ 
    static MainWindow* mainwindow = new MainWindow(this); 
    mainwindow->show(); 
    mainwindow->raise(); 
} 
+0

非常感谢你们的贡献,他们真的帮助了我们 – tintin

0

您应该只初始化一个新的对象,一旦有什么。否则,你只需要显示Window对象。

class MainWindowFactory { 
    private: 
     MainWindow* mainWindow; 
    public: 
     MainWindowFactory(); 
     MainWindow* getMainWindow(); 
}; 

MainWindowFactory::MainWindowFactory() { 
    mainWindow = NULL; 
} 

MainWindow* MainWindowFactory::getMainWindow() { 
    if (!mainWindow) { 
     mainWindow = new MainWindow(this); 
    } 
    mainWindow->show(); 
} 
2

我将在以下方式中的一种解决这个问题:一旦它被点击,并创建MainWindow

1)禁用pushButton按钮,

2)声明指针MainWindow作为secondWindow类的成员变量:

class secondWindow : public ... 
{ 
public: 
    secondWindow() 
    { 
     m_mainWindow = new MainWindow(this); 
    } 

private slots: 
    void secondWindow::on_pushButton_clicked() 
    { 
     m_mainwindow->show(); 
    } 
private: 
    MainWindow *m_mainWindow; 
};