qdockwidget не ниже qmenubar - PullRequest
       11

qdockwidget не ниже qmenubar

3 голосов
/ 07 ноября 2019

Я использую эту привязку Qt для Go https://github.com/therecipe/qt,, но возникают некоторые проблемы при объединении QDockWidget с QMenuWidget.

Я создал главное окно с создателем QT, который выплевывает файл mainwindow.ui (см. Ниже).

Теперь я хотел бы динамически добавлять закрепляющие виджеты в окно,однако при этом левый докер находится на том же уровне, что и строка меню, то есть он перемещает панель меню вправо. Мне бы хотелось, чтобы докер находился ниже статической панели.

enter image description here

На изображении «Виджет левой док-станции» должен быть ниже строки меню

Ниже приведен соответствующий код для настройки всего:

ui.go

func LoadFormToWidget(fileName string) *widgets.QWidget {
    file := utils.OpenQFile(fileName)
    widget := uitools.NewQUiLoader(nil).Load(file, nil)
    file.Close()

    return widget
}

base.go

func SetupUI() {
    mainWindowWidget := ui.LoadFormToWidget("src/ui/mainwindow.ui")

    mainWindow := widgets.NewQMainWindow(nil, 0)
    mainWindow.SetCentralWidget(mainWindowWidget)

    createDocker(mainWindow)
    setupDockingCorners(mainWindow)

    mainWindow.ShowMaximized()
}

func createDocker(mainWindow *widgets.QMainWindow) {
    leftDocker := createLeftDocker()
    mainWindow.AddDockWidget(core.Qt__LeftDockWidgetArea, leftDocker)
}

func createLeftDocker() *widgets.QDockWidget {
    leftDockWidget := widgets.NewQDockWidget("Left Dock Widget", nil, 0)
    leftDockWidget.SetAllowedAreas(core.Qt__LeftDockWidgetArea)
    leftDockWidget.SetFloating(true)
    leftDockWidget.SetWidget(widgets.NewQPushButton2("PushButton", nil))
    return leftDockWidget
}

mainwindow.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>1025</width>
    <height>596</height>
   </rect>
  </property>
  <property name="sizePolicy">
   <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
    <horstretch>0</horstretch>
    <verstretch>0</verstretch>
   </sizepolicy>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <property name="autoFillBackground">
   <bool>false</bool>
  </property>
  <property name="documentMode">
   <bool>true</bool>
  </property>
  <property name="dockNestingEnabled">
   <bool>true</bool>
  </property>
  <widget class="QWidget" name="centralwidget"/>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>1025</width>
     <height>23</height>
    </rect>
   </property>
   <property name="sizePolicy">
    <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
   </property>
   <widget class="QMenu" name="menuFile">
    <property name="title">
     <string>File</string>
    </property>
    <addaction name="actionSettings"/>
    <addaction name="separator"/>
    <addaction name="actionQuit"/>
   </widget>
   <addaction name="menuFile"/>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
  <action name="actionSettings">
   <property name="text">
    <string>Settings</string>
   </property>
  </action>
  <action name="actionQuit">
   <property name="text">
    <string>Quit</string>
   </property>
  </action>
 </widget>
 <resources/>
 <connections/>
</ui>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...