我正在尝试开发一个Tic Tac Toe游戏,我将在QMainWindow中央小部件中放置一个QGridLayout。在那里,我打算添加其他小部件(板单元格)和分隔游戏单元的线条。
这可能吗?我找不到任何API在QGridLayout中插入QLine ..
如果无法做到这一点,我可以将子窗口小部件直接放在QMainWindow的中央窗口小部件上吗?如果是这样,怎么样?
答案 0 :(得分:6)
是的,您可以在容器小部件中使用QGridLayout制作一个Tic tac toe。
关于行:它是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中包含的小部件)时,你应该创建一个只包含所需小部件的对话框,然后再查看生成的代码。