更改主窗口大小时自动重新调整小部件的大小

问题描述 投票:0回答:1

我用QtDesigner设计了一个PyQt5 GUI(MainWindow)。 因此,我将小部件“拖放到”主窗口中,并将它们放在我想要的位置。

到目前为止一切都很顺利。

但是,当我想全屏打开应用程序时,这些小部件没有调整大小。

经过一些研究,我好像做了一个 oopsie,因为我没有使用任何特定的布局......我对吗?

但我仍然希望有人以前遇到过同样的问题并且可能会解决它。 我自己也尝试了一些方法,例如将小部件的 SizePolicy 设置为展开。但没有任何效果。

我还提供了一个简约的代码,它也有同样的错误。

Python 脚本:

from PyQt5 import QtWidgets, uic
import sys
class Ui(QtWidgets.QMainWindow):
    def __init__(self):
        super(Ui, self).__init__() # Call the inherited classes __init__ method
        uic.loadUi('Test.ui', self) # Load the .ui file
        self.show() # Show the GUI
        self.button1.clicked.connect(self.button1_clicked)

    def button1_clicked(self):
        self.label1.setText("Who is there?")
        
app = QtWidgets.QApplication(sys.argv)
window = Ui()
app.exec_()

测试.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>931</width>
    <height>600</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <widget class="QPushButton" name="button1">
    <property name="geometry">
     <rect>
      <x>300</x>
      <y>160</y>
      <width>261</width>
      <height>61</height>
     </rect>
    </property>
    <property name="text">
     <string>Knock Knock</string>
    </property>
   </widget>
   <widget class="QLabel" name="label1">
    <property name="geometry">
     <rect>
      <x>330</x>
      <y>250</y>
      <width>221</width>
      <height>61</height>
     </rect>
    </property>
    <property name="text">
     <string>-----------------------------------</string>
    </property>
   </widget>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>931</width>
     <height>22</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

有人可以帮助我吗?或者除了使用特定布局之外没有其他方法吗?

问候:)

python python-3.x user-interface pyqt pyqt5
1个回答
0
投票

这取决于您如何创建布局。您是否将 MainWindow 对象设置为网格布局?如果您的小部件没有调整大小,则可能是您没有设置 MainWindow 对象布局。如果您放置了网格布局,并且必须选择 MainWindow 对象,则左上角应该呈灰色。PICTURE

© www.soinside.com 2019 - 2024. All rights reserved.