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的创建、处理和切换的主要内容,如果未能解决你的问题,请参考以下文章

需要有关 QTcreator 中信号事件处理的帮助

经验法则和切比雪夫法则

Windows 中的 QtCreator 和 Matlab 库

python selenium 实战涉及很多知识点

Windows 上的 QtCreator/QMake 完全禁用调试构建

QtCreator:没有应用程序项目作为新项目的选择