如何在qt中多次使用单个QLineEdit来每次编辑不同的标签?

时间:2019-03-17 08:08:20

标签: qt

我是qt的新手。我想根据一个QLineEdit的10个给定输入来编辑10个标签,一个接一个。

最初,当我在行编辑中输入一些文本时,应该将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 :(得分:0)

您的变量“ change”在功能上是局部的。每次插入时隙时,它就会变为0。您应该将此变量设置为类成员以存储其值。

答案 1 :(得分:0)

您应将“ change”变量移动到mainwindow.h并将其设置为局部变量状态的全局变量

mainwindow.h

public:
    int change ;

mainwindow.cpp

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

通过此更改,变量数量将保存在on_lineEdit_returnPressed的每次调用中