QT / pyqt标签/令牌输入

时间:2018-08-27 03:03:27

标签: python qt qt5 pyqt5

是否可以在QT5 / pyqt5中创建标签/令牌输入?

我正在创建GUI应用程序,用户可以在其中存储图像/照片并添加标签。特定标签已经存在于数据库中,用户应该能够从现有标签中进行选择(或在需要时创建新标签)。 可以说: 图片1标签: (云),(树),(山),路

用户从数据库中选择了前2个标签,并添加了不在数据库中的“道路”。

当前,我可以使用仅添加到QLineEdit的数据库数据创建并填充QComboBox,稍后我可以通过格式化文本来对其进行处理。但是,使用类似标签/令牌输入(如附件图像中的完全)这样的方式会更方便:

  • 单行输入
  • 每个标签/文本都有其自己的“删除”按钮
  • 在视觉上易于区分现有标签和刚刚添加的标签(文本与带有关闭按钮的框)

QT是否开箱即用,还是应该为自定义小部件中的每个文本创建图形图标?

enter image description here

1 个答案:

答案 0 :(得分:0)

是的,有可能。我对这样的小部件here有一个幼稚的实现。尚未完成,但已实现了关键功能。

因此,该实现基于QTextLayout类。完整的令牌保留为类成员,并以paintEvent方法进行绘制。当前编辑令牌已用QTextLayout对象绘制。光标也涂有QTextLayout对象。用户按键的操作以keyPressEvent处理(键入,导航)。小部件还具有一个完成器。这是核心思想,有关更多详细信息,请观察代码。

有很多工作要做:可自定义的外观,对策略进行标记化,单击交叉删除等。但是它可以用于您自己的目的或用作您自己的小部件的起点。

QLineEdit的实施对我很有帮助。