创建,处理和切换窗口QTCreator

问题描述:

我对这个问题的研究表明,我有点击败死马,但我似乎无法得出确凿的答案。创建,处理和切换窗口QTCreator

我正在使用QT Creator来创建一个GUI,它将帮助与单元(简单对象,具有某些ID等)的寄存器接口。

我有一个主菜单,其中包含5个按钮和一个表。 Pictured here。我的项目目前包括these files,我的主要目前看起来是这样的:

#include "mainwindow.h" 
#include <QApplication> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    MainWindow w; 
    UnitRegister e; 
    CommInterface c; 
    w.setRegistryPtr(e); 
    w.setCommPtr(c); 
    w.setTablePtr(w.findChild<QTableWidget*>("unitTable")); 

    w.show(); 

    return a.exec(); 
} 

我想要做的就是按下左边的四个的按钮中的一个,并用它来切换到在一个不同的看法主窗口。

为此,我考虑使用QStackedWidget,然后为每个菜单按钮设置一个页面。我的问题是这样的:

  • 如何/我应该为每个页面
  • 我如何我的页面之间切换创建一个单独的QT项目Form类(头,的.cpp 和的.ui文件)已经使用QT Designer添加了。
  • 如何确保不同的页面可以访问在我的主文件中创建的UnitRegister。

我不一定在寻找一个完整的答案,而是让我走的东西。

切换页面:考虑使用QButtonGroup来给出您的按钮ID,您可以将其映射到QStackedWidget的索引。然后,你可以这样做:

connect(buttonGroup, SIGNAL(buttonClicked(int)), stackedWidget, SLOT(setCurrentIndex(int))); 

组织页面:在你的widget栈创建的.ui文件和相应的容器控件的每一页。这比一个巨大的.ui文件要容易得多。

访问UnitRegister:有很多方法可以做到这一点。添加一个setter函数到你的类是一种方法。