windows QTCreator的创建、处理和切换
Posted
技术标签:
【中文标题】windows QTCreator的创建、处理和切换【英文标题】:Creating, handling and switching between windows QTCreator 【发布时间】:2016-05-19 16:19:49 【问题描述】:我对这个问题的研究表明我在某种程度上是在打死马,但我似乎无法得到一个确凿的答案。
我正在使用 QT Creator 创建一个 GUI,该 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 项目表单类(标题,.cpp 和 .ui 文件)为每个页面 如何在使用QT Designer 添加的页面之间切换。 如何确保不同页面可以访问在我的主文件中创建的 UnitRegister。我不一定要寻找完整的答案,而是要让我继续前进。
【问题讨论】:
【参考方案1】:切换页面:考虑使用QButtonGroup
为您的按钮提供可映射到QStackedWidget
索引的ID。然后你可以这样做:
connect(buttonGroup, SIGNAL(buttonClicked(int)), stackedWidget, SLOT(setCurrentIndex(int)));
组织页面:为小部件堆栈中的每个页面创建一个 .ui 文件和相应的容器小部件。这比一个庞大的 .ui 文件要容易得多。
访问UnitRegister
:有很多方法可以做到这一点。向您的类添加 setter 函数是一种方法。
【讨论】:
以上是关于windows QTCreator的创建、处理和切换的主要内容,如果未能解决你的问题,请参考以下文章
Windows 中的 QtCreator 和 Matlab 库