我是QT Creator的新手。我确实创建了一个菜单:Login ||打开。单击登录后,我希望看到行编辑和按下按钮。单击“打开”后,我想在窗口中看到一张图片。我可以根据在菜单栏中单击的内容来更改同一窗口的界面吗?我怎样才能做到这一点?
最佳答案
我做了类似的事情-一个具有几个主要区域的应用程序,通过顶部的图标栏进行切换。
我使用 QStackWidget
彼此堆叠不同的应用程序区域,使用设计器创建了一组 QAction
,并使用 QActionGroup
实现了切换。
当这些 Action 被标记为“可检查”并分组为QActionGroup
时, QToolBar
只能在当时激活一个 Action 。
这是我的代码的简化摘录:
// MyApp.h
#include <QMainWindow>
class QAction;
class QActionGroup;
namespace Ui {
class MyApp;
}
class MyApp: public QMainWindow
{
Q_OBJECT
public:
explicit MyApp(QWidget *parent = 0);
~MyApp();
public slots:
void showSection(QAction* a);
private:
Ui::MyApp *ui;
QActionGroup* sections;
};
//MyApp.cpp
#include "structureapp.h"
#include "ui_structureapp.h"
#include <QActionGroup>
MyApp::MyApp(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MyApp),
sections(new QActionGroup(this)),
{
ui->setupUi(this);
/* Populate section list */
/* Page indices for the stack widget*/
ui->actionSectionOne-> setData(0);
ui->actionSectionTwo-> setData(1);
ui->actionSectionThree-> setData(2);
sections->addAction(ui->actionSectionOne);
sections->addAction(ui->actionSectionTwo);
sections->addAction(ui->actionSectionThree);
ui->mainToolBar->addSeparator();
connect(sections, SIGNAL(triggered(QAction*)), this, SLOT(showSection(QAction*)));
/* Show the default section */
ui->actionContentSection->trigger();
}
MyApp::~MyApp()
{
delete ui;
}
void MyApp::showSection(QAction *a)
{
ui->mainArea->setCurrentIndex(a->data().toInt());
}
关于c++ - QT Creator主窗口-如何从菜单更改每个元素的界面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6747296/