大宇私人领地伊甸园丨宁愿做了后悔,也不要错过后悔[www.mrdayu.com]
注册

24小时联系邮箱:[email protected]

系统架构
大宇私人伊甸园: 首页 > 系统架构 > QT > 《大宇:Qt入门到精通》 > [003.06]动态对话框

[003.06]动态对话框

发布时间:2017/12/26 《大宇:Qt入门到精通》 标签qt阅读:246

引:这章给大家带来的是动态对话框内容,使用代码来调用已有的UI文件,并且使用代码去还原上一章的内容。

首先:创建一个空SLN,右键新建main.cpp

在pro文件里添加:

QT+=widgets gui

CONFIG+=uitools

添加代码:

#include <QApplication>
#include <QUiLoader>
#include <QFile>
#include <QWidget>
int main(int argc,char **argv){
    QApplication app(argc,argv);
    QUiLoader loader;
    QFile file("ExtensionDialog.ui");
    QWidget *Dialog=loader.load(&file);
    if(Dialog){
        Dialog->show();
    }
    return app.exec();
}

特别注意:

这个UI文件的路径特别讲究,如果不知道该放哪的话,建议使用绝对路径[PS:也就是全部路径],我这里使用的是相对路径[不写绝对路径就是相对路径],文中表示的为exe或bin运行时的当前目录下的ui文件。

这个ui文件就是上章内容的材料。

点击运行后的展示图:

这还不是最后的效果。

怎么操作控件?

继续在main函数添加代码:

#include <QApplication>
#include <QUiLoader>
#include <QFile>
#include <QWidget>
#include <QGroupBox>
#include <QGridLayout>
#include <QDebug>
int main(int argc,char **argv){
    QApplication app(argc,argv);
    QUiLoader loader;
    QFile file("ExtensionDialog.ui");
    QWidget *Dialog=loader.load(&file);
    if(Dialog){
        QGroupBox *group2=Dialog->findChild<QGroupBox *>("TwoGroup");
        if(group2){
            group2->hide();
        }
        QGroupBox *group3=Dialog->findChild<QGroupBox *>("ThreeGroup");
        if(group3){
            group3->hide();
        }
        Dialog->layout()->setSizeConstraint(QLayout::SetFixedSize);
        Dialog->show();
    }
    return app.exec();
}

 

The bottom line, for me, is simple.

Let’s hope it doesn’t take 500 years for a discipline of testing to becomes the standard for software developers.

From:dayu

您好!请登录

合作网站快捷登录:
点击取消回复

已有2评论

  • 大宇丨
    大宇丨 回复

    :mad: test、 :oops:


    2017年12月27日05:29
  • dayu
    dayu 回复

    :grin:


    2017年12月27日03:28

大宇博客

点击这里给我发消息点击这里给我发消息