如何将QLine添加到QGridLayout

Dan*_*iel 4 c++ qt qt4

我正在尝试开发一个Tic Tac Toe游戏,我将在QMainWindow中央小部件中放置一个QGridLayout.在那里,我打算添加其他小部件(板单元格)和分隔游戏单元的线条.

这可能吗?我找不到任何API在QGridLayout中插入QLine ..

如果无法做到这一点,我可以将子窗口小部件直接放在QMainWindow的中央窗口小部件上吗?如果是这样,怎么样?

Syn*_*xis 7

是的,你可以在容器小部件中使用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);
Run Code Online (Sandbox Code Playgroud)

您应该为此帧指定非空高度(或垂直宽度),例如2像素.GUI中的行只能是水平或垂直的.

注意:如果您不知道在Qt Designer中如何完成窗口小部件(甚至是Qt Creator中包含的窗口小部件),您应该创建一个仅包含所需窗口小部件的对话框,然后查看生成的代码.