Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2716458
  • 博文数量: 416
  • 博客积分: 10220
  • 博客等级: 上将
  • 技术积分: 4193
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-15 09:47
文章分类

全部博文(416)

文章存档

2022年(1)

2021年(1)

2020年(1)

2019年(5)

2018年(7)

2017年(6)

2016年(7)

2015年(11)

2014年(1)

2012年(5)

2011年(7)

2010年(35)

2009年(64)

2008年(48)

2007年(177)

2006年(40)

我的朋友

分类: C/C++

2010-01-19 15:22:02

 常用的有两种方法:
 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) |
给主人留下些什么吧!~~

chinaunix网友2010-01-19 15:35:52

http://www.cuteqt.com/?p=711