使用QtDesigner创建的QMainWindow中缺少边框空间

时间:2020-03-25 18:44:23

标签: python layout pyqt pyqt5 qt-designer

我在QtDesigner中使用一个小部件-水平滚动条创建了QMainWindow。

当我使用原始QMainWindow类显示它时,它可以正确显示(如在QtDesigner预览中一样):

enter image description here

但是当我将QMainWindow子类化(以添加插槽/信号等)时,小部件和窗口边框之间的空间神秘地消失了:

enter image description here

from PyQt5 import uic
from PyQt5.QtWidgets import QMainWindow, QApplication
import sys

class A(QMainWindow):
    pass

app = QApplication([])
#win = uic.loadUi("design.ui", QMainWindow()) # Using base class => borders present
win = uic.loadUi("design.ui", A()) # Using derived class => borders missing

win.show()
sys.exit(app.exec())

如何解决此问题?

PS如果我使用pyuic5生成python代码,则效果很好。

PPS python 3.6 / 3.7,Windows 7/10 x64

PPPS这是我的design.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>516</width>
    <height>250</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QGridLayout" name="gridLayout">
    <item row="0" column="0">
     <widget class="QSlider" name="horizontalSlider">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>516</width>
     <height>18</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

0 个答案:

没有答案