下面程序想实现,点击pushButton时widget_1显示,点击pushButton_2时,widget_2显示。widget_1/widget_2是在两个.ui文件。
执行后,两个QMessageBox都有结果,没有出现.ui文件。坐等高手指点。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QMessageBox"
#include <QHBoxLayout>
#include <QVBoxLayout>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
stackWidget = new QStackedWidget;
widget_1 = new widget1;
widget_2 = new widget2;
stackWidget->addWidget(widget_1);
stackWidget->addWidget(widget_2);
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(changepage1()));
connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(changepage2()));
QHBoxLayout *middleButtonLayout=new QHBoxLayout;
middleButtonLayout->addWidget(ui->pushButton);
middleButtonLayout->addWidget(ui->pushButton_2);
QVBoxLayout *mainLayout=new QVBoxLayout;
mainLayout->addLayout(middleButtonLayout);
mainLayout->addWidget(stackWidget);
setLayout(mainLayout);
}
void MainWindow::changepage1()
{
QMessageBox::information(this,"info","show 1","OK");
stackWidget->setCurrentIndex(0);
}
void MainWindow::changepage2()
{
QMessageBox::information(this,"info","show 2","OK");
stackWidget->setCurrentIndex(1);
}
MainWindow::~MainWindow()
{
delete ui;
}