[solved]Manipulating multiple GUI-Objects at once
-
Hi there,
I have an application with a bunch of lineEdits, that the user is supposed to fill with information.
Then there is a shiny "Start the process"-Button.While the process is running it is pointless to enter new values.
I want to make that as clear as possible, by blocking all Objects from human interference.Right now it is done like this:
@ui->lineEdit_foo->setDisabled(true);
ui->lineEdit_bar->setDisabled(true);
...@Is there a way to disable all of them in a less manual way?
Something like:
@for (MainWindow::allLineEdits) {
disableThem(true);
}@It is a small thing, but it would make my code a little more maintainable.
Cheers,
Schmaunz
-
I see several options
Declare a QList or QVector of QLineEdit widgets and create them manually. Then you will be able to operate on the list of the line edits.
Declare a QList or QVector of QLineEdit widgets. At the begging after ui->setupUi(this); put all ui->lineEdit_xxx to in the list of the line edit widgets. Then you will use that list to operate on all line edits.
Create a signal disableAllEdits(bool). After ui->setupUi(this); connect all line edits slot setDisabled(bool) to the signal and emit disableAllEdits(true/false) when need to disable/enable the line edits.
-
From the "Documentation:":http://qt-project.org/doc/qt-5/qwidget.html#enabled-prop "Disabling a widget implicitly disables all its children."
-
Put all your lineedits in the same container/box. Then disable the container when the user clicks the button.
-
Sorry for the late answer and thanks for your replies.
Disabling the container around the lineEdits works just fine :) -
Please, place [SOLVED] in front of your first post if the answer was given. Saves us from reading!