如何将QLine添加到QGridLayout

时间:2012-07-07 19:34:41

标签: c++ qt qt4

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

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

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

1 个答案:

答案 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中包含的小部件)时,你应该创建一个只包含所需小部件的对话框,然后再查看生成的代码。