gpt4 book ai didi

qt - 如何使 QPushButtons 将文本添加到 QLineEdit 框中?

转载 作者:行者123 更新时间:2023-12-01 09:05:37 32 4
gpt4 key购买 nike

我使用 Qt Creator 制作了一个带有 60 个 QPushButton 和一个 QLineEdit 的“键盘”窗口。如何制作按钮以将字符添加到 QLineEdit 文本框中?如果我按下带有“Q”标签的 QPushButton,我希望程序在文本框中添加 Unicode 字符“Q”。

最佳答案

一种方法是将所有按钮的“点击”信号连接到一个插槽,然后在那里处理字符的添加。

例如,如果所有键盘按钮都在名为“buttonLayout”的布局内,则在 MainWindow 构造函数中,您可以执行以下操作:

for (int i = 0; i < ui->buttonLayout->count(); ++i)
{
QWidget* widget = ui->buttonLayout->itemAt( i )->widget();
QPushButton* button = qobject_cast<QPushButton*>( widget );

if ( button )
{
connect( button, SIGNAL(clicked()), this, SLOT(keyboardButtonPressed()) );
}
}

然后在插槽实现中,可以使用 QObject::sender(),它返回发送信号的对象:
void MainWindow::keyboardButtonPressed()
{
QPushButton* button = qobject_cast<QPushButton*>( sender() );

if ( button )
{
ui->lineEdit->insert( button->text() );
}
}

关于qt - 如何使 QPushButtons 将文本添加到 QLineEdit 框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8311334/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com