常用的有两种方法:
1. 提升(promoted)方法
2. 插件plus方法
方法1又分两种情况:
1. 源文件情况
2. 库文件情况
一般说的Promoted指提升中的源文件情况
这里要说的是库文件情况下,也就是生成的DLL(Lib)中自定义的myWidget调用,一般用UiLoader方式
要求重载UiLoader,通过loader file的方法再调用
主要代码如下:
1. 加载:
QWidget *MyUiLoader::createWidget(const QString &className, QWidget *parent, const QString &name)
{
if(className == "myWidget")
{
myWidget *w = new myWidget(parent);
w->setObjectName(name);
return w;
}
else if(className == "qtLib")
{
qtLib *w = new qtLib(parent);
w->setObjectName(name);
return w;
}
else
return QUiLoader::createWidget(className, parent, name);
}
2。调用:
MyUiLoader* loader = new MyUiLoader(this);
loader->setLanguageChangeEnabled(false);
loader->setTranslationEnabled(false);
QFile file("mywidget.ui");
file.open(QFile::ReadOnly);
m_centerWidget = loader->load(&file, this);
file.close();
setCentralWidget(m_centerWidget);
qtLib *aaa = qFindChild(m_centerWidget, "aaa"); //此对象为Promoted的
注意:运行时一定要将UI文件放到对应的位置上
阅读(1293) | 评论(1) | 转发(0) |