我想在我的 Qt 应用程序中禁用除了选定的一组小部件之外的所有小部件。
我想做的是使用 findChildren
迭代 mainWindow 的所有子项,并使用 setEnabled(false)
禁用除“myTable”之外的所有结果小部件。
QList<QWidget *> allWidgets = mainWindow->findChildren<QWidget *>("");
QList<QWidget*>::iterator it;
for (it = allWidgets.begin(); it != allWidgets.end(); it++) {
if ((*it)->objectName() != "myTable") // here, objectName is not working!!
{
(*it)->setEnabled(false);
}
}
上述 if
语句中的 objectName()
不起作用。我在那里放什么?
最佳答案
objectName
函数不返回类名或变量名,而是您用QObject::setObjectName
设置的实际对象名.因此,您首先需要在您的表格中设置它:
myTable->setObjectName("myTable");
关于c++ - 从 QWidget 中获取对象名称(从 Qt Designer 中可以看出)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20209407/