Qt如何使用组合框选择更新GUI QFrame

bar*_*one 0 c++ user-interface qt

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

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

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

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

Xav*_*olt 5

您正在以正确的方式进行操作。但是Qt实际上使它比您想的要容易。

您可以使用两个内置窗口小部件:QComboBoxQStackedWidget。您对组合框很熟悉;堆叠的窗口小部件是一组窗口小部件,一次只能显示一个。本质上,它是一个带选项卡的窗口小部件,减去各个选项卡。

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

希望有帮助!