一种将复选框状态连接到 Qt Designer 中的小部件可见性的方法

A way to connect checkbox state to widget visibility in Qt Designer

有谁知道是否有办法将 Qt 中的复选框状态连接到 Qt Designer 中的对象可见性?我对 Qt 有点陌生,并且更喜欢使用 Qt Designer 而不是手动弄乱 UI 代码。我使用的Qt版本是4.8.6

感谢任何帮助。

在代码中(旧的 Qt 4 方式):

connect(checkbox, SIGNAL(toggled(bool)), widget, SLOT(setVisible(bool)));

或(推荐Qt 5方式):

connect(checkbox, QCheckBox::toggled, widget, YourWidgetType::setVisible);

在 Designer 中:打开 Signals And Slots Editor,连接上面的信号和槽。

注意到 Designer 中的信号和槽有时会被重置,不知道为什么。也许在小部件设置的代码中连接它们更可靠。

是的,您可以在 Qt Designer 中将复选框的 toggled(bool) 信号连接到小部件的 setVisible(bool)setHidden(bool) 插槽 - 在 "Edit Signals/Slots" 模式下使用拖放-掉落,或在 "Signal/Slot Editor" 码头。

如果使用拖放界面添加连接,需要开启"Show signals and slots inherited from QWidget",否则setVisible(bool)setHidden(bool)将无法使用目标小部件。