1

我对这个问题的研究表明,我在某种程度上是在打败一匹死马,但我似乎无法得到一个确凿的答案。

我正在使用 QT Creator 创建一个 GUI,它将帮助与单元寄存器(简单对象,具有一些 ID 等)进行交互。

我有一个主菜单,其中包含 5 个按钮和一个表格。如图所示。我的项目目前包括这些文件,我的主要目前看起来像这样:

#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。

我不一定要寻找完整的答案,而是要让我前进。

4

1 回答 1

1

切换页面:考虑QButtonGroup为您的按钮提供可以映射到QStackedWidget. 然后你可以这样做:

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

组织页面:为小部件堆栈中的每个页面创建一个 .ui 文件和相应的容器小部件。这比一个庞大的 .ui 文件要容易得多。

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

于 2016-05-20T01:07:51.787 回答