|
1Qter豆
本帖最后由 Qt小菜 于 2017-1-22 21:12 编辑
在使用QStackedLayout切换界面的时候,界面不切换,而是直接弹出新窗口
使用QStackedLayout的类的声明和定义:- class ControlInterface : public QWidget
- {
- Q_OBJECT
- public:
- explicit ControlInterface(QWidget *parent = 0);
- signals:
- public slots:
- private:
- MainInterface *mainInterface;
- Jigsaw *jigsaw;
- GobangControl *gobangControl;
- QStackedLayout *stackedLayout;
- QVBoxLayout *vLayout;
- };
复制代码- #include "ControlInterface.h"
- ControlInterface::ControlInterface(QWidget *parent) : QWidget(parent)
- {
- stackedLayout = new QStackedLayout(this);
- vLayout = new QVBoxLayout;
- mainInterface = new MainInterface(this);
- gobangControl = new GobangControl(this);
- jigsaw = new Jigsaw(this);
- stackedLayout->addWidget(mainInterface);//0
- stackedLayout->addWidget(gobangControl);//1
- stackedLayout->addWidget(jigsaw);//2
- stackedLayout->setCurrentIndex(0);
- vLayout->addLayout(stackedLayout);
- connect(mainInterface,&MainInterface::display,stackedLayout,&QStackedLayout::setCurrentIndex);
- this->setLayout(vLayout);
- }
复制代码 这里是MainInterface类的声明和定义:- class MainInterface : public QWidget
- {
- Q_OBJECT
- public:
- explicit MainInterface(QWidget *parent = 0);
- signals:
- void display(int number);
- public slots:
- void gobangClicked();
- void jigsawClicked();
- private:
- QPushButton *gobangBtn,*jigsawBtn;
- QVBoxLayout *vLayout;
- };
复制代码- #include "MainInterface.h"
- MainInterface::MainInterface(QWidget *parent) : QWidget(parent)
- {
- gobangBtn = new QPushButton("Gobang",this);
- jigsawBtn = new QPushButton("Jigsaw",this);
- vLayout = new QVBoxLayout;
- connect(gobangBtn,&QPushButton::clicked,this,&MainInterface::gobangClicked);
- connect(jigsawBtn,&QPushButton::clicked,this,&MainInterface::jigsawClicked);
- vLayout->addWidget(gobangBtn);
- vLayout->addWidget(jigsawBtn);
- this->setLayout(vLayout);
- }
- void MainInterface::gobangClicked()
- {
- emit display(1);
- }
- void MainInterface::jigsawClicked()
- {
- emit display(2);
- }
复制代码 在切换界面到GobangControl 类的界面和Jigsaw 类的界面的时候会直接弹出窗口,然后原窗口会变成一个空窗口。
用法是网上学的,之前写了三个界面试着切换了一下,正常切换窗口,放到我写的程序里就编程弹出窗口了。GobangControl 窗口的大小是固定的,改成不固定的还是有问题,,GobangControl 里面的QGraphicsScene的一个实例的大小是固定的。
毛病如图所示,后边哪个空白的界面就是主界面,点解切换界面的按钮后就弹出了要切换的界面,求指导
|
|