是否有一种方法可以防止Qt设计器应用属性
Is there a way to prevent Qt Designer from applying properties?
我有一些自定义小部件,我从QWidget
或QFrame
推广,但我希望构造器能够设置属性列表固定,而不必在Qt designer属性列表中更改它每次我添加这些自定义小部件之一,例如在我的CustomWidget
类构造器:
this->setFrameShape(QFrame::NoFrame);
问题是这些属性是在生成的ui.h文件中的构造函数调用之后应用的,该文件是从设计器的属性列表生成的,例如对于实现QFrame
的默认自定义小部件:
frame = new CustomWidget(groupBox_17);
frame->setObjectName(QStringLiteral("frame"));
frame->setGeometry(QRect(40, 170, 101, 21));
frame->setFrameShape(QFrame::StyledPanel);
frame->setFrameShadow(QFrame::Raised);
在这里,我们可以看到在生成的文件中调用的setFrameShape
将覆盖自定义小部件的构造函数中的setFrameShape
,因为它是在之后调用的。所以我看到的唯一选项是在ui设置之后调用一个方法(调用生成的ui.h文件,因此调用setter)来改变这些属性,如下所示:
ui->setupUi(this);
setComponentsProperties(); //Do my property changes here
任何想法,以防止FrameShape
属性从CustomWidget
被覆盖的QFrame
的默认属性设置在Qt设计器,因为我不想要手动设置这个属性上的每一个小部件,我将促进?
如果属性是真正的默认值,则不会覆盖它们。您的.ui
文件不正确,并且显式地覆盖了这些属性。您应该将它们重置为默认值,然后您引用的代码将不会被发出。setComponentProperties
调用是多余的,设置属性的代码属于自定义小部件的构造函数。
相关文章:
- Qt Quick-如何仅从c++代码与qml属性交互
- QT 样式表主题,适用于使用属性选择器的整个应用程序
- 如何在Qt C++中向自定义控件添加属性?
- 如何删除Qt设计器中自定义插件的QString属性的"translatable"复选框?
- 将 Qt 属性枚举值打印为键字符串
- 当删除上下文属性中的QLIST对象时,QT QML应用程序崩溃
- 如何在Qt中解析未知的xml并获取其中的所有属性
- Qt 无法继承属性
- QT清单属性的属性
- 为什么我不能分配此QT属性
- LNK2001带有静态属性和方法的错误(QT,C )
- Qt-Qml连接到上下文属性的QObject属性的信号
- 如何将按钮的属性设置为从Qt中的小部件可见
- 有关QT属性的问题
- 将属性添加到QT C 中的Qpushbutton
- 如何将Qt属性与自定义类一起使用
- Qt 属性、底层数据成员、绑定和开销
- 我如何知道Qt属性浏览器上的值已更改
- 如何使用qt属性动态显示/隐藏个人定义属性的子属性
- Qt属性外的基类