Qt 信号和槽问题 50
代码如下
QWidget(parent)
{
widget = new QWidget;
//左侧布局
QVBoxLayout *buttonLayout = new QVBoxLayout;
QWidget *leftWidget = new QWidget(this); //新建一个QWidget
buttonLayout->addWidget(leftWidget);
QPushButton *button1 = new QPushButton(leftWidget);
QPushButton *button2 = new QPushButton(leftWidget);
QPushButton *button3 = new QPushButton(leftWidget);
QPushButton *button4 = new QPushButton(leftWidget);
//右边布局
creat_1Page = new QWidget;
creat_2Page = new QWidget;
creat_3Page = new QWidget;
creat_4Page = new QWidget;
button5 = new QPushButton(creat_1Page);
stackedWidget = new QStackedWidget;
rightLayout->addWidget(stackedWidget);
stackedWidget->addWidget(creat_1Page);
stackedWidget->addWidget(creat_2Page);
stackedWidget->addWidget(creat_3Page);
stackedWidget->addWidget(creat_4Page);
connect(button1, SIGNAL(clicked()),stackedWidget, SLOT(slot_1()));
connect(button2, SIGNAL(clicked()),stackedWidget, SLOT(slot_2()));
connect(button3, SIGNAL(clicked()),stackedWidget, SLOT(slot_3()));
connect(button4, SIGNAL(clicked()),stackedWidget, SLOT(slot_4()));
//双表关联
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addLayout(buttonLayout);
mainLayout->addLayout(rightLayout);
mainLayout->addWidget(stackedWidget);
setLayout(mainLayout);
stackedWidget->showNormal();
}
Widget::~Widget()
{
}
void Widget::slot_1()
{
stackedWidget->setCurrentIndex(0);
}
void Widget::slot_2()
{
stackedWidget->setCurrentIndex(1);
}
void Widget::slot_3()
{
stackedWidget->setCurrentIndex(2);
}
void Widget::slot_4()
{
stackedWidget->setCurrentIndex(3);
}
void Widget::creatWidget_1()
{
creat_1Page = new QWidget;
}
void Widget::creatWidget_2()
{
creat_2Page = new QWidget;
}
void Widget::creatWidget_3()
{
creat_3Page = new QWidget;
}
void Widget::creatWidget_4()
{
creat_4Page = new QWidget;
}
我现在想达到的效果就是左边四个按钮一部分,右边四个QWidget为一部分,每一个QWidget上有按钮。点击这个按钮能够在右边跳出新页面,把这四个QWidget隐藏。麻烦代码演示一下。还有请问一下,这个点击按钮出现在右边的新窗口,窗口代码是写在。cpp里还是写在槽函数里,谢谢了。答完有追加分 展开
好吧,这简单的问题,我来解答吧。
添加链接:
connect(button5, SIGNAL(clicked()),this, SLOT(slot_5()));
添加槽:
void Widget::slot_5()
{
creat_1Page->hide();
creat_2Page->show();
}
这样就行了,下面是我刚才试了一下的图片(直接随便ui建了几个部件):
附代码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton_Next,SIGNAL(clicked()),this,SLOT(Nextpage()));
}
void MainWindow::Nextpage(){
ui->page->hide();
ui->page_2->show();
}
MainWindow::~MainWindow()
{
delete ui;
}
就这样了,给不给分就看你了
那再请教一下,我要是想把右边分页的代码放在槽函数中怎么办?我的分页代码太多,全放在.CPP里不好管理。但是有个问题就是新建分页必须在.cpp里,要不然会报内存错误,有没有什么好的办法,请教。速答速给分
这个简单:
#include "所要添加的函数代码文件"
如:
#include "page2_code.cpp"
在page2_code.cpp文件中,是第二页的所有函数代码。