如何在 ui 窗口中创建草图区域

Posted

技术标签:

【中文标题】如何在 ui 窗口中创建草图区域【英文标题】:How to create a sketch area in a ui window 【发布时间】:2021-10-21 03:57:27 【问题描述】:

我的要求。

我在 Qt 5.15 中尝试了什么?

我的问题:如何在布局窗口中创建草图区域,以便有草图空间和空间用于我的草图功能? 有人能帮忙吗?我希望我的问题很清楚。

【问题讨论】:

以后要不要加分线器? 【参考方案1】:

您需要使用布局属性...特别是 layoutstretch

如果您将其设置为 1,5,则左侧小部件以 1:5 的比例占用右侧小部件的空间...

【讨论】:

【参考方案2】:

1.首先,我把你所有的 TabWidget 放在 centralwidget 中,有 2 个标签 Tab1 和 Tab2,如下所示:

    我去这个并将最大大小更改为 200 这是 l1。

3.为centralwidget设置GridLayout,在Tabwidget附近添加一个widget。

您可以将小部件的最大宽度设置为 1000.as l1*5。

4.将按钮放在 tab1 中,我为 Tab1 设置垂直布局。

您可以将此 UI 代码复制并粘贴到您的 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>537</width>
    <height>357</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QGridLayout" name="gridLayout_2">
    <property name="leftMargin">
     <number>0</number>
    </property>
    <property name="topMargin">
     <number>0</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
    </property>
    <property name="bottomMargin">
     <number>0</number>
    </property>
    <property name="spacing">
     <number>0</number>
    </property>
    <item row="1" column="1">
     <widget class="QTabWidget" name="tabWidget">
      <property name="minimumSize">
       <size>
        <width>200</width>
        <height>0</height>
       </size>
      </property>
      <property name="maximumSize">
       <size>
        <width>200</width>
        <height>16777215</height>
       </size>
      </property>
      <widget class="QWidget" name="tab">
       <attribute name="title">
        <string>Tab 1</string>
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout">
        <item>
         <widget class="QPushButton" name="pushButton">
          <property name="text">
           <string>PushButton 1</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QPushButton" name="pushButton_2">
          <property name="text">
           <string>PushButton 2</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QPushButton" name="pushButton_3">
          <property name="text">
           <string>PushButton 3</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QPushButton" name="pushButton_4">
          <property name="text">
           <string>PushButton 4</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QPushButton" name="pushButton_5">
          <property name="text">
           <string>PushButton 5</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QPushButton" name="pushButton_6">
          <property name="text">
           <string>PushButton 6</string>
          </property>
         </widget>
        </item>
       </layout>
      </widget>
      <widget class="QWidget" name="tab_2">
       <attribute name="title">
        <string>Tab 2</string>
       </attribute>
      </widget>
     </widget>
    </item>
    <item row="1" column="2">
     <widget class="QWidget" name="widget" native="true">
      <property name="minimumSize">
       <size>
        <width>1000</width>
        <height>0</height>
       </size>
      </property>
      <property name="maximumSize">
       <size>
        <width>1000</width>
        <height>16777215</height>
       </size>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>537</width>
     <height>21</height>
    </rect>
   </property>
   <widget class="QMenu" name="menuFile">
    <property name="title">
     <string>File</string>
    </property>
   </widget>
   <widget class="QMenu" name="menuEdit">
    <property name="title">
     <string>Edit </string>
    </property>
   </widget>
   <widget class="QMenu" name="menuAbout">
    <property name="title">
     <string>About</string>
    </property>
   </widget>
   <addaction name="menuFile"/>
   <addaction name="menuEdit"/>
   <addaction name="menuAbout"/>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

【讨论】:

以上是关于如何在 ui 窗口中创建草图区域的主要内容,如果未能解决你的问题,请参考以下文章

如何检查是不是在 Xcode UI 测试中创建了新场景?

如何在 Flutter 中创建三角形 UI

Java----如何在窗口中创建菜单

如何在 Pyqt 中创建可调整大小的布局 UI?

如何在XCP中创建自定义窗口小部件

在对话窗口中使用 Glade,如何为按钮添加响应