Как установить QDockWidget для использования только нижнего правого угла QMainWindow - PullRequest
3 голосов
/ 12 августа 2010

То, что я хотел, это что-то вроде рисунка ниже. alt text

Спасибо.

Ответы [ 4 ]

1 голос
/ 24 сентября 2010

Используйте QMdiArea как центральный виджет вашего MainWindow.И тогда вы можете поместить в любую позицию свой виджет, который нужен только для подкласса QMdiSubWindow.Поверьте мне, это гораздо лучший выбор.Я пробовал то же самое, что и вы, и закончил с использованием QMdiArea и QMdiSubWindow.Это прекрасно работает для меня.

0 голосов
/ 10 февраля 2017

Я использую pyqt5

self.map = QtWidgets.QDockWidget(self)
self.map = setGeometry(self.width() - 300, self.height() - 300, 300, 300) 
0 голосов
/ 01 сентября 2010

Если вы хотите, чтобы «QDockWidget» на вашей диаграмме плавал, то есть, возможно, скрывал другие виджеты, то я бы не сделал его QDockWidget. Просто унаследуйте QWidget, установите его родительское значение в главном окне, но не добавляйте его в макет. Затем вы можете установить его позицию с помощью setPos (который вам, вероятно, придется обновить в событии resize главного окна). Я не уверен, сработает ли это, так как для QWidgets нет z-значения, так что оно все равно может оказаться ниже некоторых. Если вы используете QGraphicsView для своего главного окна, вы можете убедиться, что оно остается сверху. Затем вам нужно будет использовать графические элементы прокси для всех ваших виджетов.

Короче говоря, это возможно, но не естественно.

0 голосов
/ 16 августа 2010

Может быть, вам следует использовать void setAllowedAreas ( Qt::DockWidgetAreas areas ), чтобы установить разрешенные области для закрепленного виджета после его создания (и установить его родительское значение для окна, к которому он будет прикреплен). Эти значения перечисления находятся в http://doc.qt.io/qt-5/qt.html#DockWidgetArea-enum. объединить их.

Constant    Value
Qt::LeftDockWidgetArea  0x1
Qt::RightDockWidgetArea 0x2
Qt::TopDockWidgetArea   0x4
Qt::BottomDockWidgetArea    0x8
Qt::AllDockWidgetAreas  DockWidgetArea_Mask
Qt::NoDockWidgetArea    0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...