Qt 信号和槽问题 50

我想把creat_1Page等分页放在槽函数中怎么实现,分页中如creat_1Page中有一个button5,怎样实现点击button5,右边的分页隐藏,出现一个新页面,... 我想把creat_1Page等分页放在槽函数中怎么实现,分页中如creat_1Page中有一个button5,怎样实现点击button5,右边的分页隐藏,出现一个新页面,左边按钮的布局保持不变。要求新页面代码写在槽函数中。本人学过Qt,但是都还老师了,虚心求教,最好有代码,谢谢!答得好有追加

代码如下
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里还是写在槽函数里,谢谢了。答完有追加分
展开
 我来答
kingboy12345
2011-09-28 · 超过12用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:29.9万
展开全部

好吧,这简单的问题,我来解答吧。

添加链接:

 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文件中,是第二页的所有函数代码。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式