2015-11-24 13 views
0

我正在使用Qt Creator創建UI。
UI由兩個或更多個QLineEdit s和十個QPushButton s組成,用於輸入0-9個數字字符到QLineEdit s。我怎樣才能在QLineEdit之間逐一輸入0-9數字string s。如何從QPushButtons中輸入字符到QLineEdits,具體取決於Qt中的焦點

如果我按QPushButton與標籤‘在QLineEdit 1或如果QLineEdit 2被選擇應該追加‘在QLineEdit 2並分別與5’「5'和光標在QLineEdit(比如說QLineEdit 1)它應該追加’5另外QPushButton也是。

回答

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

要完成你的答案是:檢查哪些QLineEdit的具有焦點改變其文本:'QLineEdit的* lineEdit = ui.lineEdit-> hasFocus()? ui.lineEdit:ui.lineEdit2; lineEdit-> setText(lineEdit-> text()+ btn-> text())' – Frodon

+0

感謝您的回覆。我無法妥善解釋您的答案,請您詳細說明。請確保我正在使用QT Creator –

0

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"); 
    } 
} 
相關問題