QtDesigner中的重叠小部件

QtDesigner中的重叠小部件,qt,qt-designer,Qt,Qt Designer,我想在QtDesigner中覆盖两个小部件: 有一个大的QTextBrowser,右下角的下方应该是一个非交互标签,我将使用它作为拖动夹点来调整窗口大小(主窗口小部件是无框架的,所以我需要实现它)。 通常,此标签将位于QTextBrowser的下方,这会在夹点标签的左侧留下大量未使用的空间。因此,我想将夹点标签放在QTextBrowser的上方。我想在QtDesigner中实现这一点。但是代码看起来像: QHBoxLayout *layout = new QHBoxLayout(videoWid

我想在QtDesigner中覆盖两个小部件: 有一个大的QTextBrowser,右下角的下方应该是一个非交互标签,我将使用它作为拖动夹点来调整窗口大小(主窗口小部件是无框架的,所以我需要实现它)。 通常,此标签将位于QTextBrowser的下方,这会在夹点标签的左侧留下大量未使用的空间。因此,我想将夹点标签放在QTextBrowser的上方。我想在QtDesigner中实现这一点。但是代码看起来像:

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进行试用的步骤:

  • 创建新的表单,简单的小部件
  • 向其添加文本编辑(从窗口小部件框拖放),从对象检查器中,您应该看到它成为根窗口小部件的子级
  • 向它添加一个标签(从小部件框拖放),从对象检查器中,您应该看到它成为根小部件的子部件
  • 右键单击根窗口小部件(在对象检查器中最简单),然后从上下文菜单的底部,选择Layout>-Layout in Grid
  • 在标签上单击鼠标右键,然后从布局对齐>将其设置为与所需的角对齐
  • 完成了。以下是我的设计器中的外观:

    现在,让以上内容适应你的真实形态


    好吧,看来和设计师一起实现上面的目标是很难的,也许是做得恰到好处有点运气的问题。。。设计师似乎不支持做你想做的事情

    为清楚起见,这是一个完整的源代码:

    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表格小部件()
    我想让spinner\u dataset\u tableWidget在dataset\u tableWidget上旋转

    初始化主窗口后,您可以执行以下操作:

    #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(…)
    问题是,当您在设计器模式下添加项时,它们被添加到网格的不同列中。但是,当您使用源代码添加它们时,您正在将这两个项添加到同一列中。