0

我在尝试移动 QCompleter 弹出视图位置时遇到问题。

我尝试了QCompeter:complete,它会在我想要的位置弹出完成者视图。但是,如果我开始输入它,请关闭它,然后在“默认”位置打开完成程序。

我还尝试了QCompleter:setPopup()函数。我创建了一个 QListView 并尝试移动到不同的位置。QCompleter 弹出视图仍然保持在相同的位置。

在我的项目中,我使用了一个包装 QLineEdit 的 QFrame。我希望完成者视图将获得 QFrame 位置。我通过 setFixedWidth() 函数成功设置了完成者视图宽度。但不要移动位置。

有什么建议么 ?

谢谢。

4

1 回答 1

2

我建议将 CompletionMode 设置为 InlineCompletion,这样就不会弹出。然后让你的 QListView 独立于 QLineEdit;只需对指示视图何时键入一些文本、离开 QLineEdit 等(提示:子类 QListView)的信号做出反应,并在用户从列表中选择一个值时在 QLineEdit 中设置文本。

我认为由于 QCompleter 拥有您的 QListView 的所有权,因此很难覆盖该位置。(我个人认为将完成列表放在输入字段旁边之外的其他地方没有多大意义,但是唉......)

于 2015-11-18T21:21:25.780 回答