• 4491阅读
  • 6回复

如何动态调用.ui文件。 [复制链接]

上一主题 下一主题
离线cw2010jsj
 

只看楼主 倒序阅读 楼主  发表于: 2013-05-27
关键词: 界面显示文件
界面上有个两个Button,来切换同一区域显示两个不同的.ui文件,能否做到呢?
离线jdwx

只看该作者 1楼 发表于: 2013-05-27
QStackedWidget
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线cw2010jsj

只看该作者 2楼 发表于: 2013-05-27
引用第1楼jdwx于2013-05-27 10:46发表的  :
QStackedWidget

谢谢回复。还有个问题需要请教。QStackedWidget addwidget()里面的参数。比如我的两个ui文件名字是widget1、widget2?
离线jdwx

只看该作者 3楼 发表于: 2013-05-27
回 2楼(cw2010jsj) 的帖子
只有ui文件不行,应该还有对应.h和.cpp文件,这样的3个文件组成一个界面(就是QtCreator的新建设计师界面类,生成的3个文件),
用的时候#include xxxx.h
把这个界面new出来,就可以添加进QStackedWidget。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线jdwx

只看该作者 4楼 发表于: 2013-05-27
在按钮的槽里:    stackedWidget->setCurrentIndex(int index);第一个widget是0
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线cw2010jsj

只看该作者 5楼 发表于: 2013-05-27
Re:回 2楼(cw2010jsj) 的帖子
引用第3楼jdwx于2013-05-27 11:17发表的 回 2楼(cw2010jsj) 的帖子 :
只有ui文件不行,应该还有对应.h和.cpp文件,这样的3个文件组成一个界面(就是QtCreator的新建设计师界面类,生成的3个文件),
用的时候#include xxxx.h
把这个界面new出来,就可以添加进QStackedWidget。

谢谢,我已经这样做了。
离线cw2010jsj

只看该作者 6楼 发表于: 2013-05-27
引用第4楼jdwx于2013-05-27 11:18发表的  :
在按钮的槽里:    stackedWidget->setCurrentIndex(int index);第一个widget是0

我这样做了,信号也触发了,但我的widget一个都没有show出来。什么原因呢。
这是我的代码

    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    stack = new QStackedWidget;
    widget1 *u1 = new widget1;
    widget2 *u2 = new widget2;


    stack->addWidget(u1);
    stack->addWidget(u2);


    connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(show1()));
    connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(show2()));
}
void MainWindow::show1()
{
    QMessageBox::information(this,"info","show1","OK");
    stack->setCurrentIndex(0);
}

快速回复
限100 字节
 
上一个 下一个