繁体   English   中英

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

[英]How to enter a character to QLineEdits from QPushButtons depending on the focus in Qt

我正在使用Qt Creator制作UI。
UI由两个或多个QLineEdit和十个QPushButton组成,以向QLineEdit输入0到9的数字字符。 如何在两个QLineEdit一一输入0-9数字string

如果我按标签为'5'的QPushButton且光标位于QLineEdit (例如QLineEdit 1)上,则应在QLineEdit 1中附加'5';如果选择了QLineEdit 2,则应在QLineEdit 2中以及其他QPushButton附加'5'。也。

您可以在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所有数字按钮QObject::connect到该slot

干杯

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

例如

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");
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM