如何根据Qt中的焦点从QPushButtons输入字符到QLineEdits

时间:2015-11-24 11:42:55

标签: c++ user-interface qt4 qlineedit qpushbutton

我正在使用Qt Creator制作用户界面。
用户界面由两个或多个QLineEdit和十个QPushButton组成,用于输入0-9个数字到QLineEdit秒。如何逐个在string中输入0-9个数字QLineEdit

如果我按QPushButton标签' 5'并且光标位于QLineEdit(例如QLineEdit 1),则应附加“' 5'在QLineEdit 1中,或者如果QLineEdit 2被选中,则应附加“' 5'在QLineEdit 2和其他QPushButton也分别。

2 个答案:

答案 0 :(得分:0)

你的ui课程中可能有slot,如下所示

void MyDialog::numberButtonPressed()
{
    QPushButton* btn = qobject_cast<QPushButton*>(QObject::sender());
    if (!btn)
        return; // TODO error handling
    ui.lineEdit->setText(ui.lineEdit->text() + btn->text());
}

然后QObject::connect slot的所有数字按钮。

欢呼声

答案 1 :(得分:0)

在向UI中的插槽添加按钮后的QT Creator中,转到功能并使用hasFocus()检查它是否具有焦点。

e.g。

void MainWindow::on_pushButton_clicked()
{
    if(ui->lineEdit_1->hasFocus)
    {
        ui->lineEdit_1->setText("your text");
    }
    else if(ui->lineEdit_2->hasFocus)
    {
        ui->lineEdit_2->setText("your text");
    }
}