2014-03-27 6 views
2

QLineEdits (약 150 개)를 읽기 전용으로 만들려고합니다. 개별적으로 설정하지 않고이 작업을 수행 할 수있는 방법이 있습니까? 나는 내 생성자에서 QLineEdit::setReadOnly(true);과 같은 것을 할 수 있기를 바라고 있었지만 컴파일러 오류로 인해 비 정적 멤버 함수의 불법 호출이라고합니다.모든 QLineEdits를 readOnly로 설정하십시오.

미리 감사드립니다.

답변

1

QLineEdit에서 상속하고 setReadOnly(true)을 생성자로 호출 할 수 있습니다. 이제 QLineEdit의 개체를 만드는 대신 사용자 지정 개체 인 MyQLineEdit을 만듭니다. 이 속성을 동적으로 변경해야하는 경우 아무런 방법이없는 것 같지만 일부 배열의 모든 참조를 저장하고이 속성을 토글하는 것입니다.

7

사용과 같은 QObject::findChildren(),이 예제 ui->frame에서

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

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

모든 QLineEdits의 부모 위젯입니다. 너의 것으로 바꿔라.

관련 문제