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。细粒度操作。
[解决办法]