c++ - 从 QWidget 中获取对象名称(从 Qt Designer 中可以看出)?

标签 c++ qt qwidget qtgui qobject

我想在我的 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/

相关文章:

qt - QWidget如何检测鼠标停止移动

c++ - 几分钟后动态分配的工作线程泄漏,尽管它不应该

c++ - 将值传递给自定义 QWidget 的最佳方式

mysql - 在 Qt 4.7.2 中构建 MySQL-Plugin 的问题

c++ - 在 QT 中获取窗口 WIds 列表

qt - QWidget 的 minimumSize 与 minimumSizeHint

c++ - QPushButton 打开 QWidget

c++ - C 中的模板在 C++ 中使用 void *

将 stdout 重定向到 Linux 上的文件时,C++ 程序无法生成输出

c++ - read(2) 不在 EOF 时可以返回零吗?