簡體   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