让我们假设我们有这样的网格布局:

this->layout = new QGridLayout;

ClickableLabel *lab1 = new ClickableLabel();
this->layout->addWidget(lab1, 0, 0);

ClickableLabel *lab2 = new ClickableLabel();
this->layout->addWidget(lab2, 1, 0);

这两个ClickableLabel是否可能彼此重叠?我正在玩纸牌游戏,我需要纸牌(标签)像纸牌一样重叠。现在我的问题是:是否需要为此使用其他布局?或者我可以用setGeometrymove这样的技巧来做到这一点(没有一个对我有用)

最佳答案

假设重叠是相当静态的,则可以通过使每个ClickableLabel跨度multiple rows and/or columns轻松地对其进行仿真。

this->layout = new QGridLayout;

ClickableLabel *lab1 = new ClickableLabel();
this->layout->addWidget(lab1, 0, 0, 2/* Row span */, 1/* Column span */);

ClickableLabel *lab2 = new ClickableLabel();
this->layout->addWidget(lab2, 1, 0, 2/* Row span */, 1/* Column span */);

在上面的示例中,lab1将占据第0行和第1行,而lab2将占据第1行和第2行。因此,它们将在第1行中重叠,并且z顺序由添加顺序决定。

关于c++ - Qt-标签在网格布局中重叠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43846740/

10-09 00:21