所以我一直在用 C++ 编写数独游戏。我已经完成并测试了大部分游戏逻辑,但我想在它之上使用 Qt 作为 GUI。我试图找出满足我需要的 Qt 类的最佳方式。
作为测试,我使用了 QAbstractTableModel。我将它子类化并让它访问我现有的数据模型和我现有的控制器。现在我正在使用 QTableView 来获得数独板的基本渲染和基本的“编辑”(您可以更改任何值)。它看起来不像我想要的,但功能都在那里(或可以添加)。
我想制作一个数据模型和控制器,以便在 C++ 中对其进行修改,而不依赖于框架。然后我想让Qt坐在上面。所以我有这个工作,这是一个快速的“图表”,说明这些东西如何在高层次上进行通信
QTableView?
^
|
v
PuzzleModel : QAbstractTableModel
^ |
| |_____________
| v
Real data model classes <------------ Controllers
我的问题是,如何修改 QTableView 或者我应该创建自己的视图或 QWidget 以便以我想要的方式显示数据?
理想情况下,我想显示一个固定大小的表格(没有标题,没有调整大小),并且不允许多选。关于如何渲染各种字体样式/颜色有一些自定义,但我认为我可以很容易地处理这些。我还想将每个单元格呈现为一个数字,或者像这样的“标记”:
*-------------* *-------------*
| 1 2 3 | | ****** |
| 4 6 | | * |
| 8 9 | | * |
*-------------* *-------------*
很明显我不能继续使用开箱即用的 QTableView 。我创建自己的 QStyledItemDelegate 并仍然使用 QTableView 吗?我需要创建一个完整的小部件吗?如果我创建
只是从了解各种 Qt 类功能的人那里寻找一些建议/指导。