专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

UI Designer设计出的自定义控件,怎么让其构造函数接受多个参数

发布时间:2010-05-30 21:28:53 文章来源:www.iduyao.cn 采编人员:星星草
UI Designer设计出的自定义控件,如何让其构造函数接受多个参数?
我有一个mainDialog,是UI Designer设计的,其中有一个自定义控件,是由普通widget提升得到的。当然,我可以在这个自定义控件的构造函数中添加参数,但Qt工具生成的ui_mainDialog.h文件中会自动创建自定义控件,例如widget = new QtCustomWidget(mainDialog),其构造函数只有的一个QDialog类型的参数,这样就会引起编译错误。

请问该如何做,既可以让自定义控件借助UI designer来设计界面,又可以让我把自定义控件的创建步骤放在mainDialog的构造函数中,自己来掌控,而不是让UIC自动创建呢?

我不需要把这个自定义控件集成到UI designer中去,因为不是常用的常规控件。

------解决方案--------------------
重载一个带多参数的构造函数。在new的时候把参数依次传递进去就可以了。
------解决方案--------------------
把uic生成的.h和.cpp的类不动,在这个类的基础上继承出一个新类,构造函数可以有多个参数。
把易变的和基本不变的分离。
------解决方案--------------------
你用文本编辑器打开mainDialog.ui这个文件,看到下面的这种xml文件信息
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainDialog</class>
 <widget class="QDialog" name="MainDialog">
把MainDialog替换成你继承出来的新类试试?
------解决方案--------------------
不要用designer设计的UI,自己从新写一个widget。细粒度操作。
------解决方案--------------------
探讨

引用:
你用文本编辑器打开mainDialog.ui这个文件,看到下面的这种xml文件信息
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainDialog</class>
<widget class="QDialog" name="MainDialog">
把……

------解决方案--------------------
重写一个新类,让这个类继承ui设计器生成的类
在这个新类中做你想做的一切。
ui设计器生成的代码是不能随便动的。
------解决方案--------------------
ui_mainDialog.h是自动生成的,里面带有setupUi函数,我大概明白楼主的意思了,是在一个窗体中的某个控件在setupUI里面被自动创建了。
其实我觉得楼主完全可以换个思路,不要把代码全写在widget的构造函数内,把需要执行的代码,安排在父窗口的ui->setupUI()之后执行就可以了吧?
------解决方案--------------------
探讨

引用:
ui_mainDialog.h是自动生成的,里面带有setupUi函数,我大概明白楼主的意思了,是在一个窗体中的某个控件在setupUI里面被自动创建了。
其实我觉得楼主完全可以换个思路,不要把代码全写在widget的构造函数内,把需要执行的代码,安排在父窗口的ui->setupUI()之后执行就可以了吧?


袍哥,你终于明白我的意思了……

------解决方案--------------------
重写setupUi函数
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: