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 に答える