Qt532界面.ZC测试

ZC:Delphi中只要随便拖几个控件,设置一下属性就OK了。但是,Qt中 貌似没有 方便的方式来做这个...

ZC:目前的解决方案是:Qt中 拖几个控件,然后点 工具条里面的 "栅格布局(G)"

    

1、想实现 类似 Delphi 中的效果:跟着 窗口大小变,上面部分的控件 不动。如下图,上面2个 button不动,下面的 Memo随着窗口的大小变化而变化:

  

    

2、20190404  暂时的方案:

  主要思想:主界面 栅格布局,分成上下两部分:

   上半部分 将 最小高度和最大高度 设置成一样的(这样上半部分的高度就固定了),

   下半部分的高度将自动填充剩余部分(如果不行的话,还可以尝试 设置 属性rowspan/colspan)

  结构:

   主界面 栅格布局

    上半部分--> QWidget --> 里面可以放置 QPushButton等控件

    下半部分--> QGridLayout --> 里面只有一个 自定义的控件"WndGL_Z"(继承自类"QOpenGLWidget")

 (1)、效果图

  

  PS:截图时,鼠标正拖动着pushButton,∴ 没有截到它

 (2)、ui 源码:(使用的话,注意:不知直接带注释 复制粘贴到ui文件是否OK)

  ZC:有时修改了 ui文件的某些内容后,需要重启Qt才能生效(如下面的"<extends>QOpenGLWidget</extends>")! ! ...

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <ui version="4.0">
 3  <class>MainWindow</class>
 4  <widget class="QMainWindow" name="MainWindow">  <!-- ZC: 主界面窗口 -->
 5   <property name="geometry">
 6    <rect>
 7     <x>0</x>
 8     <y>0</y>
 9     <width>599</width>
10     <height>359</height>
11    </rect>
12   </property>
13   <property name="windowTitle">
14    <string>MainWindow</string>
15   </property>
16 
17   <widget class="QWidget" name="centralWidget">  <!-- ZC: 主界面上的centralWidget,它的布局为QGridLayout -->
18    <layout class="QGridLayout" name="gridLayout">
19 
20     <item row="1" column="0">    <!-- ZC: 第1行第0列 -->
21      <layout class="QGridLayout" name="gridLayout_2">    <!-- ZC: 这里将唯一的元件openGLWidget放在栅格布局中它会填充整个栅格布局 -->
22       <item row="0" column="0">
23        <widget class="WndGL_Z" name="openGLWidget" native="true"/>
24       </item>
25      </layout>
26     </item>
27 
28     <item row="0" column="0">    <!-- ZC: 第0行第0列 -->
29      <widget class="QWidget" name="widget" native="true">
30       <property name="minimumSize">
31        <size>
32         <width>0</width>
33         <height>100</height>  <!-- ZC: 这里设置 最小高度值 -->
34        </size>
35       </property>
36       <property name="maximumSize">
37        <size>
38         <width>16777215</width>
39         <height>100</height>  <!-- ZC: 这里设置 最大高度值 -->
40        </size>
41       </property>
42 
43       <widget class="QPushButton" name="pushButton">
44        <property name="geometry">
45         <rect>
46          <x>10</x>
47          <y>10</y>
48          <width>75</width>
49          <height>23</height>
50         </rect>
51        </property>
52        <property name="text">
53         <string>PushButton</string>
54        </property>
55       </widget>
56 
57      </widget>
58     </item>            <!-- ZC: 第0行第0列  结束 -->
59 
60    </layout>    <!-- ZC: "gridLayout"结束 -->
61   </widget>    <!-- ZC: "centralWidget"结束 -->
62 
63  </widget>    <!-- ZC: "MainWindow"结束 -->
64 
65  <layoutdefault spacing="6" margin="11"/>
66  <customwidgets>
67   <customwidget>
68    <class>WndGL_Z</class>
69    <extends>QOpenGLWidget</extends>    <!-- ZC: 注意这里,不能是QWidget(这个就是普通的控件了) -->
70    <header>wndgl_z.h</header>
71   </customwidget>
72  </customwidgets>
73  <resources/>
74  <connections/>
75 </ui>

3、

4、

5、

原文地址:https://www.cnblogs.com/cppskill/p/9022892.html