11

状況:
私はこの方法で構築された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(0, 0, 0, 0) とそのレイアウトの QBoxLayout.setSpacing(0) を使用して、サブ QFrame の余白を減らすように要求しました。QLabel とその QPixmap の間のゼロマージンは自然に発生するようです。

問題:
これにもかかわらず、QFrames 内のマージンが表示され続けます: スタイル シートをさまざまなウィジェットに適用することでテストできた状況です。

私に何ができる?

4

1 に答える 1

14

Qt フォーラムで提供された回答:

マージンのコンテンツは、ウィジェットとそのレイアウトの両方で設定する必要があります。したがって:

QWidget *w = new QWidget();
w->setContentsMargins(0, 0, 0, 0);
w->layout()->setContentsMargins(0, 0, 0, 0);
于 2012-05-18T22:14:00.453 に答える