The*_*ist 6 c++ qt qt5 qlayout
我QGridLayout经常使用,并且有一个需求我不知道如何或者我是否可以通过这种布局来实现。
我的问题:想象一下,我QWidget的左右两侧(在QHBoxLayout或 之类的东西上)有两个普通小部件(源自QGridLayout),我希望用户可以移动分隔它们的线。那可能吗?
更多信息: 举个例子,想象一下默认的 Windows 注册表编辑器。左边是键和路径,右边是要编辑的值。
我想强调的是,我不是在要求浏览器视图。我拥有的基本上是右侧的绘图小部件和QTableView左侧的小部件,我希望用户能够方便地用鼠标缩放,哪个小部件应该在水平方向上更大。
是否有某种可通过鼠标缩放的布局?
请询问您需要的更多信息。
谢谢!
我认为您应该使用QSplitter。
根据文档:
拆分器允许用户通过拖动子级之间的边界来控制子级小部件的大小。任何数量的小部件都可以由单个拆分器控制。
例如,使用 Qt Creator,如果我们有两个QGridLayout,QPushButton每个都有一个,我们可以选择两者QGridLayout并使用该Lay Out Horizontally in Splitter选项。
之后,我们可以移动它们之间的边界来控制子部件的大小:
我做了一个例子。这里有 ui 文件的代码:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>435</width>
<height>105</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QSplitter" name="splitter">
<property name="geometry">
<rect>
<x>9</x>
<y>10</y>
<width>411</width>
<height>71</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<widget class="QWidget" name="gridLayoutWidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="gridLayoutWidget_2">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>
Run Code Online (Sandbox Code Playgroud)