Я полагаю, что ваш QWidget
добавлен в QLayout
в какой-то момент. Затем просто попросите содержать QLayout
зарезервировать некоторое свободное пространство вокруг его содержимого, вызвав [setContentsMargins].
Пример, вы имели:
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.Thanks, но как насчет mouseEvents? Может ли этот макет получать mouseEvent? beacuase Мне нужно обработать mouseEvent в этой области – IMAN4K
@ IMAN4K: события мыши будут приниматься 'parent'. Он может быть передан 'widget' с помощью' QObject :: installEventFilter'. – jpo38