Qt 将所有QLineEdits设置为只读
我正在尝试将所有QlineEditions(我有大约150个)设置为只读,有没有一种方法可以做到这一点,而不必逐一进行检查和设置?我希望我能做一些类似于Qt 将所有QLineEdits设置为只读,qt,qlineedit,Qt,Qlineedit,我正在尝试将所有QlineEditions(我有大约150个)设置为只读,有没有一种方法可以做到这一点,而不必逐一进行检查和设置?我希望我能做一些类似于QLineEdit::setReadOnly(true)的事情在我的构造函数中,但我得到一个编译器错误,说这是对非静态成员函数的非法调用 提前谢谢你 您可以做的是继承QLineEdit并在其构造函数中调用setReadOnly(true)。现在不再创建QLineEdit的对象,而是创建自定义MyQLineEdit的对象。如果需要动态更改此属性,那
QLineEdit::setReadOnly(true)的事情代码>在我的构造函数中,但我得到一个编译器错误,说这是对非静态成员函数的非法调用
提前谢谢你 您可以做的是继承QLineEdit
并在其构造函数中调用setReadOnly(true)
。现在不再创建QLineEdit
的对象,而是创建自定义MyQLineEdit
的对象。如果需要动态更改此属性,那么我想除了将对所有属性的引用存储在某个数组中并遍历该数组来切换此属性之外,没有其他方法了。使用QObject::findChildren()
,如下所示:
QList<QLineEdit*> l_lineEdits = ui->frame->findChildren<QLineEdit*>();
foreach (QLineEdit* l_lineEdit, l_lineEdits) {
l_lineEdit->setReadOnly(true);
}
QList l_lineEdits=ui->frame->findChildren();
foreach(QLineEdit*l_lineEdit,l_lineEdits){
l_lineEdit->setReadOnly(真);
}
在本例中,ui->frame
是所有QLineEdits的父窗口小部件。把它换成你的