あなたのQWidget
がある時点でQLayout
に追加されたとします。次に、内容を囲むスペースを確保するために、[setContentsMargins]を呼び出して、含まれているQLayout
を尋ねてください。 、そして、
QWidget* widget = new QWidget(parent);
parent->layout()->addWidget(widget);
を単に追加します:
例は、あなたが持っていた
parent->layout()->setContentsMargins(100,100,100,100);
これはwidget
は、その周りの空の領域の100ピクセルを持っていることを保証します。 、あなたがそのような中間QWidget
を作成することができ、より汎用的なこと、それはあなたが親を持っていない場合にも
:
あなたが持っていた:
QWidget* myWidget = new QWidget(NULL);
widget->show();
ちょうど行います
QWidget* parentWithEmptySpaceBorder = new QWidget(NULL);
parentWithEmptySpaceBorder->setLayout(new QVBoxLayout());
parentWithEmptySpaceBorder->layout()->setContentsMargins(100,100,100,100);
QWidget* myWidget = new QWidget(NULL);
parentWithEmptySpaceBorder->layout()->addWidget(myWidget);
parentWithEmptySpaceBorder->show();
を@ jpo38。ありがとうございますが、mouseEventsはどうですか?そのレイアウトはmouseEventを受け取ることができますか? beacuase私はその領域でmouseEventを処理する必要があります – IMAN4K
@ IMAN4K:マウスイベントは 'parent'によって受信されます。 'QObject :: installEventFilter'を使って' widget'に送信することができます。 – jpo38