Как использовать один QLineEdit несколько раз в qt для редактирования разных меток каждый раз? - PullRequest
0 голосов
/ 17 марта 2019

Я новичок в Qt.Я хочу отредактировать 10 меток на основе 10 заданных входных данных из одного QLineEdit, один за другим.

Первоначально, когда я вводю некоторый текст в редактирование строки, label1 должен редактироваться как заданный текст.Аналогично, во второй раз, когда я ввожу какой-то текст, в качестве заданного текста следует редактировать только label2 и т. Д.

Я пробовал следующее:

void MainWindow::on_lineEdit_returnPressed() {
int change=0;
QString input1,input2,input3;
switch(change) {
case 0:  input1 = ui->lineEdit->text();
         ui->label_11->setText(input1);
         change=1;
         break;
case  1: input2 = ui->lineEdit->text();
         ui->label_12->setText(input2);
         change=2;
         break;
case  2: input3 = ui->lineEdit->text();
         ui->label_13->setText(input3);
         change=3;
         break; }

}

Здесь, каждый раз, когда я вводю какой-либо ввод через QLineEdit, обновляется только label_11.

У меня остается вопрос: Как я могу использовать один и тот же QLineEdit несколько раз для редактирования разных ярлыков каждый раз?

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Вы должны переместить переменную "change" в mainwindow.h и сделать ее глобальной переменной вместо локальной переменной

mainwindow.h

public:
    int change ;

mainwindow.cpp

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
    ...
    change = 0;
}

при этих изменениях количество переменных будет сохраняться при каждом вызове в on_lineEdit_returnPressed

0 голосов
/ 17 марта 2019

Ваша переменная "change" является локальной в функции. Он устанавливается в 0 каждый раз, когда включается слот. Вы должны сделать эту переменную членом класса для хранения ее значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...