提问人:Dominik 提问时间:11/15/2023 更新时间:11/16/2023 访问量:44
更改 MainWindow [duplicate] 的大小时自动重新调整小部件的大小
Automatic readjust size of widgets when changing size of MainWindow [duplicate]
问:
这个问题在这里已经有答案了:
如何使Qt Widget随着窗口大小的增长而增长? (4 个答案)
在 PyQt4 中调整小部件的大小 (1 个答案)
控件在QtDesigner中坚持太大,并且不会调整大小 (1个答案)
8天前关闭。
我用QtDesigner设计了一个PyQt5 GUI(MainWindow)。 因此,我将 Widget “拖放”到 MainWindow 中,并将它们放在我想要的位置。
到目前为止,一切都很好。
但是,当我想在全屏中打开应用程序时,这些小部件没有调整大小。
一段时间后的研究时间,似乎我做了一个哎呀,因为我没有使用任何特定的布局......我说得对吗?
但我仍然希望有人以前遇到过同样的问题,也许可以解决它。 我自己也尝试了几件事,比如将小部件的 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_()
Test.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>
有人可以帮我吗,或者除了使用特定的布局之外没有其他方法吗?
问候:)
答:
1赞
r-log
11/16/2023
#1
嗯,这取决于你是如何创建布局的。您是否将 MainWindow 对象设置为网格布局?如果您的小组件未调整大小,则可能是您没有设置 MainWindow 对象布局。如果您已经放置了网格布局,并且必须选择您的 MainWindow 对象PICTURE,它应该在左上角显示为灰色
1赞
Tim Roberts
11/16/2023
#2
我不确定你所说的“特定布局”是什么意思,但这句话准确地描述了你在这里所做的事情——你已经直接用特定的 X 和 Y 坐标放置和调整了每个组件的大小。此处没有代码可以进行任何调整大小。使用Qt的正确方法是使用布局。然后,布局管理器将为您管理所有调整大小。掌握布局和尺寸的理念需要一点时间,但结果非常值得付出努力。您再也不用担心 X 和 Y。
以下是布局指南:
评论