如果我使用 QT Designer,如何更改小部件 属性
How to change the widgets property if I use QT Designer
我正在使用 Visual Studio 2022 和 C++ QT 5.14.2。
我使用 QT Designer 设置了一个 PushButton 和一个 LineEdit,并给了它们一些初始值 属性。但是我在按钮点击信号槽函数中遇到了问题,这是我的代码:
void SocketChat::on_connectButton_clicked() {
appendMessage(ui.connectButton->text()); // output button's text
if (ui.addrEdit->isEnabled() && ui.portEdit->isEnabled()) {
// disabled
ui.addrEdit->setEnabled(false);
ui.connectButton->setText(QStringLiteral("Disconnect"));
appendMessage(ui.connectButton->text()); // output button's text
}
if (ui.addrEdit->isEnabled() && !ui.portEdit->isEnabled()) {
ui_notification->setText(QStringLiteral("Please stop listening."));
}
if (!ui.addrEdit->isEnabled() && ui.portEdit->isEnabled()) {
// enabled
ui.addrEdit->setEnabled(true);
ui.connectButton->setText(QStringLiteral("Connect"));
}
}
按钮的文字在QT Designer中赋值为'Connect',函数执行完后,按钮的文字仍然是'Connect'。
appendMessage
函数每次点击输出两个词:
Connect
Disconnect
点击功能正常,但在此功能中成功更改了按钮的文本。但是功能完成后,一切都恢复了。按钮的文本仍然是 'Connect'。我试过 repaint()
和 update()
,它们无法工作。
如何更改widgets的属性?好像这些属性一旦更改就无法初始化了。
您缺少 else
个关键字。
请注意,当您单击按钮时,第一个 if
块(标记为“// 已禁用”)将被执行,它会禁用 ui.addrEdit
按钮。由于缺少 else
关键字,程序还会检查其他 if
语句的条件。由于按钮现在被禁用,最后一个条件评估为真,因此标记为“//启用”的块也是 运行。这不是你想要的。
我正在使用 Visual Studio 2022 和 C++ QT 5.14.2。
我使用 QT Designer 设置了一个 PushButton 和一个 LineEdit,并给了它们一些初始值 属性。但是我在按钮点击信号槽函数中遇到了问题,这是我的代码:
void SocketChat::on_connectButton_clicked() {
appendMessage(ui.connectButton->text()); // output button's text
if (ui.addrEdit->isEnabled() && ui.portEdit->isEnabled()) {
// disabled
ui.addrEdit->setEnabled(false);
ui.connectButton->setText(QStringLiteral("Disconnect"));
appendMessage(ui.connectButton->text()); // output button's text
}
if (ui.addrEdit->isEnabled() && !ui.portEdit->isEnabled()) {
ui_notification->setText(QStringLiteral("Please stop listening."));
}
if (!ui.addrEdit->isEnabled() && ui.portEdit->isEnabled()) {
// enabled
ui.addrEdit->setEnabled(true);
ui.connectButton->setText(QStringLiteral("Connect"));
}
}
按钮的文字在QT Designer中赋值为'Connect',函数执行完后,按钮的文字仍然是'Connect'。
appendMessage
函数每次点击输出两个词:
Connect Disconnect
点击功能正常,但在此功能中成功更改了按钮的文本。但是功能完成后,一切都恢复了。按钮的文本仍然是 'Connect'。我试过 repaint()
和 update()
,它们无法工作。
如何更改widgets的属性?好像这些属性一旦更改就无法初始化了。
您缺少 else
个关键字。
请注意,当您单击按钮时,第一个 if
块(标记为“// 已禁用”)将被执行,它会禁用 ui.addrEdit
按钮。由于缺少 else
关键字,程序还会检查其他 if
语句的条件。由于按钮现在被禁用,最后一个条件评估为真,因此标记为“//启用”的块也是 运行。这不是你想要的。