QT:如何在点击事件(qtextbrowser,qwebview,...)上展开/折叠文字

时间:2013-01-18 18:51:22

标签: python qt pyqt qwebview qtextbrowser

我必须在python / QT UI中显示大量文本。 此文本表示测试仪发送的模式(数字信号)。

为例:

// Command 1
0x002045A85
0x002045A84
0x002045A83
...
// Command 2
0x002045A85
0x002045A84
0x002045A83
...

我只会在UI上显示模式中包含的注释。如果用户单击注释行,则文本将展开,并且某些十六进制代码将写在单击的行下方。如果用户再次单击同一注释行,则十六进制行将折叠。

如果用户点击十六进制数行,将弹出带有数字信号的图形。

我不知道该怎么做。

拜托,有人可以给我一个可以帮助我进行这项开发的例子吗?

伯努瓦

1 个答案:

答案 0 :(得分:2)

使用QTreeWidget:“命令N”行是您的第一级,可以展开以显示十六进制数字项。 QTreeWidget有一个clicked()信号,为您提供点击的项目,因此实施点击事件以显示信号图形应该很容易。

这种方法的唯一缺点是QTreeWidget要求您一次创建整个树结构。如果您的数据非常大并且内存使用率成为一个问题,您可以稍后将此UI扩展为QTreeView,其中包含一个自定义模型,可以懒惰地加载第二级数据。