在Qt中如何使用QtDesigner创建的UI文件(二)

     除了在编译时处理ui文件外,Qt还提供了在运行时动态加载ui文件的机制。通过QtUiTools模块的QUiLoader可以在运行时加载ui文件。

    加载ui文件的方式如以下代码所示:

 QWidget* TextFinder::loadUiFile()
 {
     QUiLoader loader;

     QFile file(":/forms/textfinder.ui"); //  文件名可以是绝对路径或相对于应用程序的相对路径
     file.open(QFile::ReadOnly);

     QWidget *formWidget = loader.load(&file, this);
     file.close();

     return formWidget;
 }

   使用方式:

 

ui_lineEdit = qFindChild<QLineEdit*>(formWidget, "lineEdit"); //  需要指定对象的名字QUiLoader类放在一个独立的库中。


   为了在应用程序中使用QUiLoader,必须在工程文件 .pro 中加入一行内容:

                     CONFIG += uitools

    在实际项目中,动态加载ui文件的需求似乎不怎么强烈,我所经历的项目就还从来没有使用过这种方式。


你可能感兴趣的:(UI,Designer,QtCreator)