QT/pyqt标签/令牌输入

5
在QT5/pyqt5中创建标签/令牌输入是否可行? 我正在创建GUI应用程序,用户可以存储图像/照片并添加标签。特定的标签已经在数据库中,用户应该能够从现有标签中选择(如果需要,也可以创建新的标签)。 假设: 图像1标签: (云),(树),(山),道路 用户已经从数据库中选择了前两个标签,并添加了“道路”,而这个标签不在数据库中。 目前,我可以使用数据库数据创建和填充QComboBox,它只会附加到QLineEdit,稍后我可以通过格式化文本将其处理回来。但是,拥有类似标签/令牌输入框(与附加的图像完全相同)会更方便: 单行输入 每个标签/文本都有自己的“删除”按钮 易于区分现有标签和刚添加的标签(文本与带有关闭按钮的框之间的视觉区别) QT是否有这样的功能,还是我应该为自定义小部件中的每个文本创建图形图标?

enter image description here


你想要一个类似于SO添加标签的系统吗?如果是这样,你尝试过什么? - eyllanesc
@eyllanesc,我不认为我熟悉它,你能给我一个例子或者告诉我在哪里阅读相关的信息吗?谢谢! - tmdag
我已将一个答案标记为重复,尝试并改进它。 - eyllanesc
@eyllanesc,我刚刚查看了一下,那个重复的答案与我的问题和附加的图片完全不符,很抱歉:( 但还是谢谢您的建议,也有所帮助! - tmdag
请查看:https://github.com/nicktrandafil/tags - nicolai
显示剩余4条评论
1个回答

2
是的,这是可能的。我有一个相应小部件的天真实现在这里。它还没有完成,但关键功能已经实现。
因此,实现基于QTextLayout类。完成的标记作为类成员保留,并在paintEvent方法中绘制。当前编辑的标记也是用QTextLayout对象绘制的。光标也是用QTextLayout对象绘制的。用户按键在keyPressEvent(输入,导航)中处理。该小部件还具有自动完成器。这是核心思想,有关更多详细信息,请观察代码。
还有很多工作要做:自定义外观,标记策略,通过单击交叉点删除等。但它可以用于您自己的目的,或者作为您自己小部件的起点。 QLineEdit的实现对我非常有帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接