加载中…
个人资料
一去二三里
一去二三里
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,322,840
  • 关注人气:898
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

QUiLoader加载ui文件

(2014-07-01 18:45:39)
标签:

qt

quiloader

quiloader加载

quiloader加载ui文件

加载ui文件

分类: Qt
    QUiLoader使独立的应用程序在运行时动态地创建用户界面,使用存储在UI文件或插件路径中指定的信息。 
此外,可以自定义或派生自己的类加载器创建自己的用户界面。也就是说:用于动态的加载设计师生成的界面(QMainWindow、QWidget、QDialog)。 
    QUiLoader类允许创建基于存储在UI文件中的信息或指定插件路径的(使用Qt Designer创建的)小部件。指定插件路径可以使用pluginPaths()函数来检索。同样,一个UI文件的内容可以使用load()函数来检索。

connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(showWidget()));

void MainWindow::showWidget()
{
    if (!pWidget)
    {
        QUiLoader loader;
        QFile file("D:\\Works\\GAEA-PUBLIC\\GGM\\branches\\UiLoader\\Test.ui");
        file.open(QFile::ReadOnly);
        pWidget = loader.load(&file);
        if (pWidget)
        {
            QPushButton *pPushButton = pWidget->findChild("pushButton");
            if (pPushButton)
                connect(pPushButton, SIGNAL(clicked()), this, SLOT(changeText()));
        }
        file.close();
    }
    if (pWidget)
        pWidget->showNormal();
}

void MainWindow::changeText()
{
    static int i = 0;
    QStringList strList;
    strList << "red" << "green" << "blue" << "yellow" << "gray";
    ui->pushButton->setStyleSheet(QString("color:white; background:%1").arg(strList.at(i%5)));
    ui->pushButton->setText(QString("Hello World...%1").arg(i++));
}
    此处包含两个界面,MainWindow以及索要加载的Test.ui界面(此处可为QMainWindow、QWidget、QDialog),当点击MainWindow中的按钮时触发槽showWidget,槽中使用QUiLoader对Test.ui进行加载,并获取其中的按钮,和主界面进行互相“通信”。。。

pro中需要添加依赖的模块:
    QT += core gui widgets uitools

包含头文件:
    #include 

效果如下:
QUiLoader加载ui文件

QUiLoader加载ui文件


注:
    技术在于交流、沟通,转载请注明出处并保持作品的完整性。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
后一篇:快速入门
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    后一篇 >快速入门
      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有