我决定学习如何编写自己的应用程序,但遇到了对Qt Designer的误解。
完成任务:
这是更详细的想法。已经建议实施:如何在主窗口中创建个人小部件?
短的:
我想在一个窗口中编写一个简单的程序。它有 3 个独立的子窗口(见截图,大概显示了一些东西)。有人建议我使用 QSplitter。这解决了该问题,但出现了以下问题。
问题:
- 如何通过主窗口调整大小来实现小部件调整大小?
- 这可以在 Qt Designer 中完成吗?
我看到了类似的问题,但他们使用固定模板(按钮、文本、窗口等)创建了窗口。同时,我有可以手动调整大小的实时窗口。此外,如果我为Central 小部件选择LayOut,我将无法为 3 个窗口创建拆分器 (在我的情况下是 QFrame,因为将来我将在那里添加功能)
- 是否可以在同一个 Qt Designer 中添加放大条件?
我希望在不改变 1x1 纵横比的情况下,深灰色和浅绿色窗口与主窗口一起增长。
更新
ui文件。我想手动做菜单栏,所以值得考虑。
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>GcsWindow</class>
<widget class="QMainWindow" name="GcsWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1000</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>GcsWindow</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<widget class="QWidget" name="centralwidget">
<property name="minimumSize">
<size>
<width>1000</width>
<height>600</height>
</size>
</property>
<property name="sizeIncrement">
<size>
<width>1</width>
<height>1</height>
</size>
</property>
<property name="baseSize">
<size>
<width>1000</width>
<height>600</height>
</size>
</property>
<widget class="QPushButton" name="BUT_Menu">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>80</width>
<height>30</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
background-color: rgb(235,235,235);
border-radius: 1px;
Text-align:center;
}
QPushButton:hover{
background-color:rgb(225, 225, 225);
}
QPushButton:pressed {
background-color: rgb(200,200,200);
border-style: inset;
}
QPushButton:open{
background-color: rgb(200,200,200);
border-style: inset;
}</string>
</property>
<property name="text">
<string>MENU</string>
</property>
</widget>
<widget class="QSplitter" name="splitter_2">
<property name="geometry">
<rect>
<x>0</x>
<y>31</y>
<width>1000</width>
<height>569</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="handleWidth">
<number>1</number>
</property>
<widget class="QSplitter" name="splitter">
<property name="baseSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="handleWidth">
<number>1</number>
</property>
<widget class="QFrame" name="frame">
<property name="baseSize">
<size>
<width>300</width>
<height>300</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(49, 49, 49);</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QFrame" name="frame_2">
<property name="baseSize">
<size>
<width>300</width>
<height>269</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(213, 255, 216);</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_3">
<property name="styleSheet">
<string notr="true">background-color: rgb(248, 194, 255);</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>

您可以简单地在Qt Designer中创建一个包含元素的分隔符:
首先将您的小部件放在设计器中(它们不应该在布局中)。
选择要包含在拆分器中的小部件(按住CTL并单击它们)
右键单击选定的小部件,然后从“布局”菜单中
选择
Lay Out Horizontally in Splitter或Lay Out Vertically in Splitter。现在将
layout网格应用于选定的小部件。q1322996.ui