2013-05-17 68 views
-1

我打算在Qt中创建Win Hex应用程序。我想知道应该使用哪个小部件来创建十六进制显示区域。我必须打开硬盘才能显示500 GB的磁盘。WinHex的技术

那么,哪个小部件可以处理大量的十六进制行?

我已经开始在QWidget的绘画事件中做它,但QWidget的高度是整数,所以行数不能大于整数范围。

那么,我应该使用QTextEditQPlainTextEdit

+1

你几乎肯定不想将*整个*文件/磁盘数据加载到编辑器中。大多数能够处理大文件或编辑整个磁盘的编辑器可能只加载当前显示的区域,处理滚动事件以读取并显示正在滚动的区域。 – Iridium

+0

那么请告诉我如何管理滚动事件如何控制当我在某个扇区进行某些更改然后进入另一个扇区,然后在撤消时如何通过使用Qundo来在哪个位置执行撤消操作堆栈... –

回答

1

您使用错误的方式。考虑使用QAbstractItemModel + QTableView。你的模型可以使用“虚拟窗口”。这意味着您的模型只保存一小部分将按需加载的数据。

+0

可以请你提供任何我可以得到一些描述的链接...... –

+0

qt模型视图的概念可以在http://qt-project.org/doc/qt-4.8/找到modelview.html – AnatolyS

+0

在这里我必须使用撤消设施&我必须更改十六进制字符,, ..使用Qundo堆栈和Qundo命令。 要求是在单个滚动区域有总扇区..如果我使用QAbstract项目模型,这不会完成.... –