【问题标题】:Pyqt5 multiple sizes tableWidgetPyqt5 多种尺寸 qtableWidget
【发布时间】:2020-08-17 11:53:16
【问题描述】:

我在 qtDesigner 中创建了一个窗口,其中我有两个框架,在 frame1 中有两个 tableWidgets 和 frame2 我有一个 tableWidget。所有 tableWidget 都具有相同的高度,例如 50-50%。我想将 frame1 或 tableWidget1 &2 的高度设置为 30%,而 frame2 将是 70%,如图所示。可能很容易做到或绝对有功能,但我无法找到并做到这一点。

【问题讨论】:

    标签: python pyqt pyqt5 qt-designer


    【解决方案1】:

    建议您提供一个 MRE,例如在您的情况下,如果您提供 .ui 会很棒,因为您没有提供它,那么在我的回答中我将不得不创建它,但它会不一定与您的样品相同。


    由于 QFrame 是 QTableWidget 的容器,因此它们定义了它们的高度,并且可以通过 QVBoxLayout 设置它们的大小,它们是比例拉伸因子:

    <?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>400</width>
        <height>300</height>
       </rect>
      </property>
      <property name="windowTitle">
       <string>Form</string>
      </property>
      <layout class="QVBoxLayout" name="verticalLayout" stretch="3,7">
       <item>
        <widget class="QFrame" name="frame">
         <property name="frameShape">
          <enum>QFrame::StyledPanel</enum>
         </property>
         <property name="frameShadow">
          <enum>QFrame::Raised</enum>
         </property>
         <layout class="QHBoxLayout" name="horizontalLayout">
          <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>
          <item>
           <widget class="QTableWidget" name="tableWidget"/>
          </item>
          <item>
           <widget class="QTableWidget" name="tableWidget_2"/>
          </item>
         </layout>
        </widget>
       </item>
       <item>
        <widget class="QFrame" name="frame_2">
         <property name="frameShape">
          <enum>QFrame::StyledPanel</enum>
         </property>
         <property name="frameShadow">
          <enum>QFrame::Raised</enum>
         </property>
         <layout class="QVBoxLayout" name="verticalLayout_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>
          <item>
           <widget class="QTableWidget" name="tableWidget_3"/>
          </item>
         </layout>
        </widget>
       </item>
      </layout>
     </widget>
     <resources/>
     <connections/>
    </ui>
    

    【讨论】:

    • 太棒了!工作。谢谢你的帮助。没有您的宝贵帮助和支持,我的项目很难完成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 2013-02-05
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    相关资源
    最近更新 更多