创建,处理和切换窗口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函数到你的类是一种方法。