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

时间:2013-02-13 21:53:31

标签: c++ qt user-interface

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

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

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

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

1 个答案:

答案 0 :(得分:5)

你正确地走这条路。但是Qt实际上比你想的更容易。

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

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

希望有所帮助!