Pyqt5 несколько размеров tableWidget - PullRequest
0 голосов
/ 03 мая 2020

enter image description here

Я создал окно в qtDesigner, где у меня есть два фрейма, в frame1 есть два tableWidget и frame2, у меня есть один tableWidget. все tableWidget имеют одинаковую высоту, как 50-50%. Я хочу установить высоту frame1 или tableWidget1 & 2 до 30%, а frame2 будет 70%, как показано на рисунке. может быть, это легко сделать или определенно иметь функциональность, но я не могу найти и сделать это.

1 Ответ

2 голосов
/ 03 мая 2020

Рекомендуется, чтобы вы предоставили MRE, например, в вашем случае было бы здорово, если вы предоставите .ui, так как вы не предоставили его, тогда в моем ответе мне придется его создать, но он будет не обязательно быть таким же, как ваши образцы.


Поскольку QFrame являются контейнерами QTableWidget, они определяют их высоту, а размер их можно задать с помощью QVBoxLayout, они представляют собой коэффициент пропорционального растяжения:

enter image description here

<?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>
...