Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 将所有QLineEdits设置为只读_Qt_Qlineedit - Fatal编程技术网

Qt 将所有QLineEdits设置为只读

Qt 将所有QLineEdits设置为只读,qt,qlineedit,Qt,Qlineedit,我正在尝试将所有QlineEditions(我有大约150个)设置为只读,有没有一种方法可以做到这一点,而不必逐一进行检查和设置?我希望我能做一些类似于QLineEdit::setReadOnly(true)的事情在我的构造函数中,但我得到一个编译器错误,说这是对非静态成员函数的非法调用 提前谢谢你 您可以做的是继承QLineEdit并在其构造函数中调用setReadOnly(true)。现在不再创建QLineEdit的对象,而是创建自定义MyQLineEdit的对象。如果需要动态更改此属性,那

我正在尝试将所有QlineEditions(我有大约150个)设置为只读,有没有一种方法可以做到这一点,而不必逐一进行检查和设置?我希望我能做一些类似于
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的父窗口小部件。把它换成你的