[英]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.