Qt - 在面板中动态添加QLineEdit

时间:2012-03-20 10:43:41

标签: c++ qt user-interface widget

这是用Qt / C ++编程的问题。我有一个包含两个项目的组合框。如果当前选择索引为0,则组合框下方的布局中不应显示QLineEdit。如果为1,则应出现QLineEdit。如果索引再次为0,它应该再次消失。 值得注意的是,布局中的其他元素不应受更改的影响。用户已在其他QineEdit中输入的值应保留在原位。

是否可以动态修改小部件?你是怎么做的?

亲切的问候。

1 个答案:

答案 0 :(得分:4)

所有QWidget对象都有一个名为hide()的函数。

您可以将信号附加到组合框的currentIndexChanged信号,并在该函数中实现您想到的任何逻辑并调用QLineEdit的方法隐藏。

这种方法唯一的问题是Qt Widget在隐藏时不会占据屏幕上的任何空间,这可能导致布局更改(取决于您如何编程布局,例如,其他一些小部件可以移动一点。为了防止你可以让另一个Widget出现在QLineEdit的位置(可能调用show()函数,并将' placeholder'放在LineEdit所在的同一容器上),只占用它的空间并保持在那里,或者您可以使用QStackedWidget在那里添加两个小部件并更改其索引。

我建议您阅读以下示例,它对动态更改内容有一些有用的见解:Qt Extension Example

此外,如果有疑问,请查看其他示例,它们确实有很好的文档记录,涵盖了很多关于Qt的重要主题。

祝你的代码好运:)