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

时间:2012-05-18 21:40:02

标签: qt4 pyqt4

情况:
我正在研究以这种方式构建的Qt4应用程序(如果父小部件在本期中很重要):

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

目的:
我希望子QFrame和它们的QLabel之间没有边距,QLabel和它们的QPixmap之间也没有边距。

方式:
我已经要求使用QFrame.setContentsMargins(0,0,0,0)及其布局的QBoxLayout.setSpacing(0)来减少子QFrame的边距。 QLabel与其QPixmap之间的零利差似乎是自然发生的。

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

我该怎么办?

1 个答案:

答案 0 :(得分:11)

Answer provided on Qt Forum

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

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