如何确定 qtable 单元格中小部件的类型?
我创建了一个 QTable
,其中在各个单元格中包含许多 gui 元素,例如 comboBoxes
和 checkBoxes
。我可以通过创建指向这些元素的指针来访问它们。我想知道的是,有什么方法可以知道单元格具有什么类型的 widget
(comboBox
或 checkBox
)?
I have created a QTable
with lots of gui elements like comboBoxes
and checkBoxes
in various cells. I am able to access these elements by creating pointers to them. What I want to know is, is there any way to know what type of widget
(comboBox
or checkBox
) a cell is having?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我建议使用
qobject_cast
https://doc。 qt.io/qt-5/qobject.html#qobject_cast它的工作方式类似于
dynamic_cast
,但更好一点,因为它可以做出一些 Qt 特定的假设(不依赖于 RTTI)。你可以这样使用它:
I would suggest using
qobject_cast
https://doc.qt.io/qt-5/qobject.html#qobject_castIt works like
dynamic_cast
but is a little better since it can make some Qt specific assumptions (doesn't depend on RTTI).You can use it like this:
您可以编写以下实用函数:
或者,您可以使用
typeid
来确定单元格中对象的运行时类型。编辑:
正如@Evan在评论中指出的,您还可以使用
qobject_cast
来转换对象,而不是
dynamic_cast
。请参阅此处的示例。You can write following utility functions:
Or maybe, you can use
typeid
to determine the runtime type of the object in the cell.EDIT:
As @Evan noted in the comment, you can also use
qobject_cast
to cast the object, instead ofdynamic_cast
. See the examples here.您可以使用 QObject::className() 来获取小部件的类型。
You can use
QObject::className()
to get the type of the widget.