python - PyQt5 自动小部件调整大小
问题描述
我想根据窗口大小自动调整小部件大小。
例如:如果窗口大小增加,窗口内的小部件也必须增加。
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.listWidget = QtWidgets.QListWidget(self.centralwidget)
self.listWidget.setGeometry(QtCore.QRect(20, 20, 771, 551))
self.listWidget.setObjectName("listWidget")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
解决方案
您所要做的就是使用他们的 Qlayouts 或 QHBoxlayouts 或 QVBoxlayouts。除非您调整大小,否则它将自动调整大小。
例子:
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtWidgets import QVBoxLayout
from PyQt5.QtWidgets import QWidget
def greeting():
#Slot function.
if msg.text():
msg.setText("")
else:
msg.setText("Hello World!")
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('Signals and slots')
layout = QVBoxLayout()
btn = QPushButton('Greet')
btn.clicked.connect(greeting) # Connect clicked to greeting()
layout.addWidget(btn)
msg = QLabel('')
layout.addWidget(msg)
window.setLayout(layout)
window.show()
sys.exit(app.exec_())
推荐阅读
- kotlin - Kotlin 结构列表
- python - django rest 框架的 django-tenats。如何管理 SasS 应用程序
- c# - 为什么我们在 C# 中没有一些编码名称和代码页的字符串常量?
- jestjs - 为什么我的 RTL 找不到带有 img 角色的 svg?
- firebase - 在 react native 项目中安装 react-native-firebase/messaging 时出现问题
- python - Plotly Express:在动画中使颜色条静态化
- google-earth - 使用 Google Earth Enigne 计算无云天数 - Sentinel-5p
- python - 如何优化查IP地址和获取国家?
- javascript - 如何在我的画布标签在我的网页中结束后添加一个部分?
- image - 使用 crypto-js 解密二进制文件(图像)