2

我一直在研究文件浏览器应用程序,我希望在启动时正确调整第一列(文件名)的大小。我可以在 python 提示符下键入以下代码并正确调整列大小,但是当我将其放入文件并尝试运行它时,列未调整大小。知道为什么吗?

#!/bin/env python

import sys
import os
from PyQt4.QtGui import *
app = QApplication(sys.argv)
treeView = QTreeView()
fileSystemModel = QFileSystemModel(treeView)
rootDir = fileSystemModel.setRootPath(os.path.expanduser('~'))
treeView.setModel(fileSystemModel)
treeView.setRootIndex(rootDir)
treeView.setGeometry(100,100,1024,768)
treeView.show()
treeView.resizeColumnToContents(0)
app.exec_()

当然,当我将它复制到 python 提示符时,我会省略 app.exec_()。这是导致列不调整大小的原因吗?(编辑:我将“app.exec_()”复制到提示符中,它几乎完成了您所期望的 - 事件循环开始,我能够使用该应用程序,然后关闭它,然后我返回python 提示符。)

4

1 回答 1

0

从 Python 提示符和脚本运行时,似乎将调用替换为treeView.resizeColumnToContents(0)导致treeView.header().setResizeMode(0, QHeaderView.ResizeToContents)列被扩展。我不知道为什么resizeColumnToContents没有按预期工作。

旁注:应该#!/bin/env python#! /usr/bin/env python?至少在我的发行版中,/bin/env不存在。

于 2013-10-11T02:27:36.843 回答