我正在尝试使我的所有QLineEdits(我大约有150个)都是只读的,有没有一种方法可以进行而不需要逐个设置每个设置?我希望可以在构造函数中执行类似QLineEdit::setReadOnly(true);的操作,但是我收到一个编译器错误,指出它是对非静态成员函数的非法调用。

先感谢您!

最佳答案

使用QObject::findChildren(),像这样:

QList<QLineEdit*> l_lineEdits = ui->frame->findChildren<QLineEdit*>();

foreach (QLineEdit* l_lineEdit, l_lineEdits) {
    l_lineEdit->setReadOnly(true);
}

在此示例中,ui->frame是所有QLineEdits的父窗口小部件。只需将其更改为您的。

10-08 11:20