我在QtDesigner中使用一个小部件-水平滚动条创建了QMainWindow。
当我使用原始QMainWindow类显示它时,它可以正确显示(如在QtDesigner预览中一样):
但是当我将QMainWindow子类化(以添加插槽/信号等)时,小部件和窗口边框之间的空间神秘地消失了:
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>