如何根据 Qt 中的焦点从 QPushButtons 输入字符到 QLineEdits
How to enter a character to QLineEdits from QPushButtons depending on the focus in Qt
我正在使用 Qt Creator 制作一个 UI。
UI 包含两个或多个 QLineEdit
和十个 QPushButton
来输入0-9 个数字字符到 QLineEdit
s。如何在两个 QLineEdit
中一一输入 0-9 数字 string
。
如果我按带有标签“5”的 QPushButton
并且光标在 QLineEdit
上(比如 QLineEdit
1),它应该在 QLineEdit
1 中附加“5”或如果选择 QLineEdit
2,它应该在 QLineEdit
2 中附加“5”,并分别与其他 QPushButton
s 附加。
您的 ui class 中可以有一个 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
。
干杯
在 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");
}
}
我正在使用 Qt Creator 制作一个 UI。
UI 包含两个或多个 QLineEdit
和十个 QPushButton
来输入0-9 个数字字符到 QLineEdit
s。如何在两个 QLineEdit
中一一输入 0-9 数字 string
。
如果我按带有标签“5”的 QPushButton
并且光标在 QLineEdit
上(比如 QLineEdit
1),它应该在 QLineEdit
1 中附加“5”或如果选择 QLineEdit
2,它应该在 QLineEdit
2 中附加“5”,并分别与其他 QPushButton
s 附加。
您的 ui class 中可以有一个 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
。
干杯
在 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");
}
}