我是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来每次编辑不同的标签?
答案 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的每次调用中