我正在尝试开发一个井字游戏,其中我将在 QMainWindow 中央小部件中放置一个 QGridLayout。在那里,我打算添加其他小部件(板单元)和分隔游戏单元的线。
这可能吗?我找不到在 QGridLayout 中插入 QLine 的任何 API。
如果这不可能,我可以将子小部件直接放在 QMainWindow 的中央小部件上吗?如果是这样,怎么做?
是的,您可以在容器小部件中使用 QGridLayout 进行井字游戏。
关于行:它是 Qt Designer 提供的一个便利工具,它不直接存在。实际上,一行是经过一些重新设计的 QFrame:
QFrame* line = new QFrame();
line->setGeometry(QRect(/* ... */));
line->setFrameShape(QFrame::HLine); // Replace by VLine for vertical line
line->setFrameShadow(QFrame::Sunken);
您应该给这个框架一个非空高度(或垂直框架的宽度),例如 2 个像素。GUI 中的线条只能是水平的或垂直的。
注意:当您不知道 Qt Designer 中的小部件是如何完成的(甚至是 Qt Creator 中包含的小部件)时,您应该创建一个仅包含所需小部件的对话框,然后查看生成的代码。