让我们假设我们有这样的网格布局:
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是否可能彼此重叠?我正在玩纸牌游戏,我需要纸牌(标签)像纸牌一样重叠。现在我的问题是:是否需要为此使用其他布局?或者我可以用
setGeometry
或move
这样的技巧来做到这一点(没有一个对我有用) 最佳答案
假设重叠是相当静态的,则可以通过使每个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/