小智 16
嗯,这取决于您计划以后如何访问QObject.有几个QObject.find()函数可用于访问QObject.该名称添加了一个"键"来过滤搜索.
例如,在你自己的类中,你可能会使用实例变量而不是进行搜索,但实际上你可能会传递一些你通常不拥有的东西,但是你知道有一个你想要编辑的特定按钮(例如, Qt内置QInputDialogs中的QPushButton).给按钮起一个名称可以很容易找到(如果按钮消失,在布局中移动等,则是健壮的),而检查按钮文本或计算它在层次结构中的位置会更加脆弱(例如,按钮)文本可能会在版本之间发生变化,或者由于本地化,有人会添加新的布局,额外的按钮).
或者,您在打印指针值时可能需要一些不错的调试文本(即,您想知道哪个QObject导致了问题).它还使脚本编写更容易,但我不会在这里解释原因.
这真的只是冰山一角.如果你需要它,你真的只需要设置名称,只有你知道答案.:-)
Bil*_*ill 12
您可以在Qt样式表中将对象的名称用作ID选择器.
示例:如果您希望属性仅应用于一个特定的QLineEdit,您可以使用QObject :: setObjectName()为其命名,并使用ID Selector来引用它:
myDialog->setStyleSheet("QLineEdit#nameEdit { background-color: yellow }");
Run Code Online (Sandbox Code Playgroud)
在对象是可编写脚本的情况下,它是有意义的,并且可以与findChild一起使用
//button is the object name, which needs to be define in qml for the component.e.g. objectName: "button"
QObject *buttonQML = view.rootObject()->findChild<QObject*>("button");
Run Code Online (Sandbox Code Playgroud)
其中"button"是对象名称
| 归档时间: |
|
| 查看次数: |
9259 次 |
| 最近记录: |