0

我有一个组合框,其中包含不同命令类型的列表。我想根据组合框中的选定命令更改 GUI 上的可见输入字段。我对 Qt 很陌生,如果有人能指出我实现这一点的正确方向,我将不胜感激。

我目前的想法是有一个发出信号的“选择”按钮,连接的插槽将获取组合框的当前索引。我认为我需要实现一个自定义类来保存 QFrame。自定义类将包含指示哪些数据输入(对于所选命令)应显示在 QFrame 中的插槽。

IE,如果在组合框中选择了 COMMAND_1,则 QFrame 中显示 3 个输入字段。如果选择了 COMMAND_2,则在 QFrame 中显示一对单选按钮,并且这 3 个输入字段被隐藏或取消分配。

这是尝试解决此问题的好方法吗?

4

1 回答 1

5

你正在以正确的方式去做。但 Qt 实际上比你想象的更容易。

您可以使用两个内置小部件:QComboBoxQStackedWidget。您熟悉组合框;堆叠的小部件是一组小部件,一次只会显示一个。它本质上是一个标签式小部件减去标签。

设置您的堆叠小部件,使其第一个小部件是您想要在组合框显示其第一个选项时显示的内容,第二个小部件显示第二个选项,依此类推。然后您可以将内置信号连接到内置插槽:QComboBox::currentIndexChanged(int)QStackedWidget::setCurrentIndex(int)

希望有帮助!

于 2013-02-13T22:04:35.910 回答