QtDesigner中的重叠小部件
我想在QtDesigner中覆盖两个小部件: 有一个大的QTextBrowser,右下角的下方应该是一个非交互标签,我将使用它作为拖动夹点来调整窗口大小(主窗口小部件是无框架的,所以我需要实现它)。 通常,此标签将位于QTextBrowser的下方,这会在夹点标签的左侧留下大量未使用的空间。因此,我想将夹点标签放在QTextBrowser的上方。我想在QtDesigner中实现这一点。但是代码看起来像:QtDesigner中的重叠小部件,qt,qt-designer,Qt,Qt Designer,我想在QtDesigner中覆盖两个小部件: 有一个大的QTextBrowser,右下角的下方应该是一个非交互标签,我将使用它作为拖动夹点来调整窗口大小(主窗口小部件是无框架的,所以我需要实现它)。 通常,此标签将位于QTextBrowser的下方,这会在夹点标签的左侧留下大量未使用的空间。因此,我想将夹点标签放在QTextBrowser的上方。我想在QtDesigner中实现这一点。但是代码看起来像: QHBoxLayout *layout = new QHBoxLayout(videoWid
QHBoxLayout *layout = new QHBoxLayout(videoWidget);
QLabel *overlayWidget = new QLabel();
overlay->setAlignment(Qt::AlignCenter);
overlay->setText("Overlaid Text");
layout->addWidget(overlay);
或者像我在python中已经做的那样:
self.textedit=QTextBrowser(self);
...
gripImage=QLabel(self.textedit)
括号之间的部分是父窗口小部件
现在看起来就是这样,但这不是我想要的:
这通常是使用最简单的方法来实现。它允许小部件占用相同的网格单元。对于这个特殊问题,1x1网格就足够了 使用designer进行试用的步骤:
好吧,看来和设计师一起实现上面的目标是很难的,也许是做得恰到好处有点运气的问题。。。设计师似乎不支持做你想做的事情 为清楚起见,这是一个完整的源代码:
QGridLayout *layout = new QGridLayout(widget);
QTextBrowser *textBrowser = new QTextBrowser();
QLabel *label = new QLabel();
label->setText("Overlaid Text");
//label gets positioned above textBrowser and is an overlay
layout->addWidget(textBrowser, 0, 0, Qt::AlignLeft | Qt::AlignTop);
layout->addWidget(label, 0, 0, Qt::AlignRight | Qt::AlignBottom);
我也有同样的问题,但我没有设法在QtDesigner中添加重叠的小部件。相反,我必须在初始化主窗口后动态创建重叠窗口 我有两个小部件:
- dataset\u tableWidget(tableWidget)
- 微调器\u数据集\u表格小部件()
#Crating QtWaitingSpinners dinamically and positioning it over the tableWidgets
dataset_tableWidget = QtWaitingSpinner(dataset_tableWidget)
dataset_tableWidget.setSizePolicy(dataset_tableWidget.sizePolicy())
标签小部件仍然在文本编辑旁边,而不是在其角落的上方。如果我有,我希望它会成为对象浏览器中textedit的子对象success@user2366975您的屏幕截图看起来手柄标签与文本编辑在不同的
QGridLayout
单元格中。@user2366975是的,在玩了一会儿之后,使用Designer很难获得您在这个答案的屏幕截图中看到的内容。所以最好添加一点代码。@user2366975为了正确选择位于下面的小部件的行和列,我必须使用indexOf(widget*)
和getItemPosition(…)
问题是,当您在设计器模式下添加项时,它们被添加到网格的不同列中。但是,当您使用源代码添加它们时,您正在将这两个项添加到同一列中。