我正在尝试找到为即时消息应用程序创建个性化联系人列表的最佳方式。
也许有一个树视图,但我不确定。
我需要一种方法来查看其中有联系人的组。联系人包含不同的信息和操作按钮,例如“发送消息、查看信息……”
一个例子@http: //ycorpblog.com/wp-content/uploads/2007/10/yahoo-messenger-90-action-toolbar.jpg
我正在尝试找到为即时消息应用程序创建个性化联系人列表的最佳方式。
也许有一个树视图,但我不确定。
我需要一种方法来查看其中有联系人的组。联系人包含不同的信息和操作按钮,例如“发送消息、查看信息……”
一个例子@http: //ycorpblog.com/wp-content/uploads/2007/10/yahoo-messenger-90-action-toolbar.jpg
我在这里做我的小研究。我继承了我的一个类 QAbstractItemDelegate。
我重新实现了paint() 和sizeHint()
在paint() 中用于绘制我的项目(这里例如是一个按钮)代码:
QStyleOptionButton buttonStyle;
buttonStyle.rect = option.rect;
buttonStyle.features = QStyleOptionButton::AutoDefaultButton;
buttonStyle.text = "Salut!";
QApplication::style()->drawControl(QStyle::CE_PushButton,&buttonStyle,painter);
但是它确实涉及重新实现 QAbstractItemDelegate: helpEvent () 来检索单击按钮的动作(将鼠标的位置与我的绘图进行比较并确定用户单击了什么)?
此外,通过上面提出的解决方案,
QAbstractItemDelegate::helpEvent () 是一个槽
尽管仔细阅读了文档,但我无法确定何时调用此函数,它是否连接到某些东西?
我还看了一下editorEvent(),我恢复得很好Mouse Click,但无法确切知道用户点击的位置,因此无法知道它是按钮还是其他元素。
我也问了我使用的方法。这个好吗?你能启发我吗?
等待您的答案/想法。谢谢你。