go - qdockwidget 不低于 qmenubar
问题描述
我将这个 Qt 绑定用于 Go https://github.com/therecipe/qt,但QDockWidget
与QMenuWidget
.
我已经用 QT 创建器创建了主窗口,它吐出一个mainwindow.ui
文件(见下文)。
现在我想动态地将停靠小部件添加到窗口,但是,这样做时,左侧泊坞窗与菜单栏处于同一级别,这意味着它将菜单栏向右移动。我希望将泊坞窗放在静态栏下方。
在图像中,“Left Dock Widget”应位于菜单栏下方
以下是设置所有内容的相关代码:
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
}
主窗口.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>
解决方案
推荐阅读
- javascript - 从语音交互式画布中获取文本?
- mysql - 如何解决mysql存储过程
- android - 如何立即从范围内取消(返回)Kotlin 协程?
- python - 如何对角分割图像?
- php - 如何在不先用 php 提取内容的情况下显示 Zip 文件的图像内容?
- ios - 使用 KVO 观察视图控制器生命周期,不起作用
- git - 为 AWS CodeCommit 生成 HTTPS Git 凭证:AWS 编程访问
- javascript - javascript 使用参数从内部调用函数表达式本身
- docker - sudoer 文件允许 docker 的命令不起作用
- python - 将(缺少)用户输入更改为默认字符串值