QWidget.setContentsMargins()似乎是无效的:为什么呢?(QWidget.s

2019-07-29 11:10发布

情况:
我的工作以这种方式构建的应用程序的Qt4(如果父控件在这个问题无关紧要):

QApplication
   |_ QMainwindow
         |_ QScrollArea (central widget)
               |_ QFrame (child of scroll area)
                     |_ QFrame
                     |      |_ QLabel
                     |            |_ QPixmap
                     |_ QFrame
                     |      |_ QLabel
                     |            |_ QPixmap
                     |_ QFrame
                           |_ ect...

目的:
我希望这是子QFrames及其QLabels之间和QLabels和他们的QPixmap之间同样没有利润。

方法:
我已经要求减少与QFrame.setContentsMargins子QFrame的利润率(0,0,0,0),并用其布局的QBoxLayout.setSpacing(0)。 QLabel和其的QPixmap之间的零边距似乎自然地发生。

问题:
尽管这一切,QFrames内利润率坚持显示出来:我已经能够通过应用样式表到各个部件进行测试的情况。

我能做什么?

Answer 1:

答案提供Qt的论坛 :

页边距内容应在widget和它的布局设置两者。 因此:

QWidget *w = new QWidget();
w->setContentsMargins(0, 0, 0, 0);
w->layout()->setContentsMargins(0, 0, 0, 0);


文章来源: QWidget.setContentsMargins() appears to be ineffective: why so?
标签: qt4 pyqt4