Qt4 setContentsMargins()似乎无效:为什么?

Qt4 setContentsMargins()似乎无效:为什么?,qt4,pyqt4,Qt4,Pyqt4,情况: 我正在处理一个以这种方式构造的Qt4应用程序(以防父窗口小部件在本期中起作用): 目标: 我希望子Qframe和它们的Qlabel之间没有余量,Qlabel和它们的QPixmap之间也没有余量 方法: 我已请求使用QFrame.setContentsMargins(0,0,0,0)及其布局的QBoxLayout.setSpacing(0)来减少子QFrame的边距。QLabel和它的QPixmap之间的零边界似乎是自然发生的 问题: 尽管如此,Qframe中的边距仍然存在:我已经能够通过

情况:
我正在处理一个以这种方式构造的Qt4应用程序(以防父窗口小部件在本期中起作用):

目标:
我希望子Qframe和它们的Qlabel之间没有余量,Qlabel和它们的QPixmap之间也没有余量

方法:
我已请求使用QFrame.setContentsMargins(0,0,0,0)及其布局的QBoxLayout.setSpacing(0)来减少子QFrame的边距。QLabel和它的QPixmap之间的零边界似乎是自然发生的

问题:
尽管如此,Qframe中的边距仍然存在:我已经能够通过将样式表应用于各种小部件来测试这种情况

我能做什么

边距的内容应在小部件及其布局上设置。因此:


事实上,setContentsMargins必须在布局上执行,如果它不起作用,那么一个可选参数是将间距设置为0->布局的setSpacing(0)。
QApplication
   |_ QMainwindow
         |_ QScrollArea (central widget)
               |_ QFrame (child of scroll area)
                     |_ QFrame
                     |      |_ QLabel
                     |            |_ QPixmap
                     |_ QFrame
                     |      |_ QLabel
                     |            |_ QPixmap
                     |_ QFrame
                           |_ ect...
QWidget *w = new QWidget();
w->setContentsMargins(0, 0, 0, 0);
w->layout()->setContentsMargins(0, 0, 0, 0);