gpt4 book ai didi

python - 如何在主窗口中更改 PyQt5 目录 View 的大小?

转载 作者:行者123 更新时间:2023-11-28 18:06:23 31 4
gpt4 key购买 nike

我正在做一个 PyQt5 项目,它需要 PyQt5 QTreeView 的文件夹查看器。为了放更多的东西,我尝试改变 TreeView 的大小但没有成功。这是来自 Pythonspot 的代码:

import sys
from PyQt5.QtWidgets import QApplication, QFileSystemModel, QTreeView, QWidget, QVBoxLayout
from PyQt5.QtGui import QIcon

class App(QWidget):

def __init__(self):
super().__init__()
self.title = 'PyQt5 file system view - pythonspot.com'
self.left = 10
self.top = 10
self.width = 640
self.height = 480
self.initUI()

def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)

self.model = QFileSystemModel()
self.model.setRootPath('')
self.tree = QTreeView()
self.tree.setModel(self.model)

self.tree.setAnimated(False)
self.tree.setIndentation(20)
self.tree.setSortingEnabled(True)

self.tree.setWindowTitle("Dir View")
self.tree.resize(640, 200)

windowLayout = QVBoxLayout()
windowLayout.addWidget(self.tree)
self.setLayout(windowLayout)

self.show()

if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())

我改变了 TreeView

self.tree.resize(640, 200)

为什么它不起作用?

最佳答案

布局用于确定您正在使用的小部件的位置和大小,因此在您的情况下,即使您使用调整大小,大小也不会改变,相反,您应该设置一个固定大小,这样布局就不会改变QTreeView 的大小。

import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class App(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 file system view - pythonspot.com'
self.left, self.top, self.width, self.height = 10, 10, 640, 480
self.initUI()

def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)

self.model = QtWidgets.QFileSystemModel()
self.model.setRootPath('')
self.tree = QtWidgets.QTreeView()
self.tree.setModel(self.model)

self.tree.setAnimated(False)
self.tree.setIndentation(20)
self.tree.setSortingEnabled(True)

self.tree.setWindowTitle("Dir View")
self.tree.setFixedSize(640, 200)

windowLayout = QtWidgets.QVBoxLayout(self)
windowLayout.addWidget(self.tree, alignment=QtCore.Qt.AlignTop)

self.show()

if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())

关于python - 如何在主窗口中更改 PyQt5 目录 View 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53215329/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com