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。细粒度操作。
------解决方案--------------------
------解决方案--------------------
重写一个新类,让这个类继承ui设计器生成的类
在这个新类中做你想做的一切。
ui设计器生成的代码是不能随便动的。
------解决方案--------------------
ui_mainDialog.h是自动生成的,里面带有setupUi函数,我大概明白楼主的意思了,是在一个窗体中的某个控件在setupUI里面被自动创建了。
其实我觉得楼主完全可以换个思路,不要把代码全写在widget的构造函数内,把需要执行的代码,安排在父窗口的ui->setupUI()之后执行就可以了吧?
------解决方案--------------------
------解决方案--------------------
重写setupUi函数
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
Qt Creator 2.1 Beta 2 和Qt 4.7.1 发布
转载:http://www.cmdn.net/news/1148
诺基亚发布了Qt框架的跨平台开发环境(IDE) –Qt Cre...
-
Qt菜单的显示问题
我的是在ubuntu11.10虚拟机上运行的qt creator4,现在刚入门,按照http://www.yafeilinux.com/?p=30的例子添加菜单...
-
'make' 不是内部或外部命令,也不是可运行的程序或批处理文件?
根据HTML code
http://v.youku.com/v_show/id_XMTA1NDEzODUy.html
的...
-
visual studio 2010编译qt的demo无法运行,求教。
安装的qt-win-opensource-4.8.0-vs2010.exe和qt-vs-addin-1.1.10.exe
然后想运行...
-
QT,'HANDLE'没有命名的一个类型
网上说QT是,一处编写,处处编译,可是我在windows下写好了串口通讯程序,在linux下编译时,却提示'HANDLE'...
-
关于QT的授权
一直都没搞懂QT的商业授权是怎么回事,请问如果我用QT在电视机机顶盒上开发一款基于QT的播放器,如果我没有获得商业授...
-
有关QTable制作表格保存问题
我使用的是QT2,需要制作一个表格,然后输入数据后保存。我源码在以下网址,set.zip压缩包中http://www.qt...
-
Qt怎样禁止用户最大化窗口
用Qt写一个窗口,如果继承QDialog,那窗口就只有关闭按钮,如果继承QWidget,那么就有关闭,最大化,最小化三个按...
-
QT4.4.3版本窗体透明后界面失去焦点无法响应键盘事件
用的是Qt4.4.3版本,窗体透明的方法如下:
C/C++ code
QPalette pal = pale...
-
QT4下载到开发板的问题
友善的2440开发板,按照一些教程装好了QT4在Linux下的开发环境。
用NFS启动开发板,把arm版编译出来的应用程...