当前位置: 首页 > 面试题库 >

如何在主窗口内的pyqt中创建文件夹视图

龚振
2023-03-14
问题内容

我正在尝试实现文件夹查看器以查看特定路径的结构。并且此文件夹视图应该看起来像PyQT中的树小部件,我知道文件对话框可以提供帮助,但我需要将其放在主窗口中。
我试图使用QTreeWidget来实现这一点,并且使用了递归函数在文件夹内循环,但这太慢了。因为它需要围绕大量文件夹进行递归。这是正确的方法吗?


问题答案:

使用模型和视图。

"""An example of how to use models and views in PyQt4.
Model/view documentation can be found at
http://doc.qt.nokia.com/latest/model-view-programming.html.
"""
import sys

from PyQt4.QtGui import (QApplication, QColumnView, QFileSystemModel,
                         QSplitter, QTreeView)
from PyQt4.QtCore import QDir, Qt

if __name__ == '__main__':
    app = QApplication(sys.argv)
    # Splitter to show 2 views in same widget easily.
    splitter = QSplitter()
    # The model.
    model = QFileSystemModel()
    # You can setRootPath to any path.
    model.setRootPath(QDir.rootPath())
    # List of views.
    views = []
    for ViewType in (QColumnView, QTreeView):
        # Create the view in the splitter.
        view = ViewType(splitter)
        # Set the model of the view.
        view.setModel(model)
        # Set the root index of the view as the user's home directory.
        view.setRootIndex(model.index(QDir.homePath()))
    # Show the splitter.
    splitter.show()
    # Maximize the splitter.
    splitter.setWindowState(Qt.WindowMaximized)
    # Start the main loop.
    sys.exit(app.exec_())


 类似资料:
  • 问题内容: 在Linux终端中创建文件的最简单方法是什么? 问题答案: 根据您希望文件包含的内容: 对于一个空文件 用于包含某些命令输出的文件。 或(或) 它可以打开现有文件进行编辑,也可以创建并打开一个空文件以输入(如果不存在)

  • 为了说明这一点,我正在创建一个treeview,它将在用户创建一个文件夹后实例化自己,并且所述文件夹将被添加为TreeItem。 我现在有这个: 多谢了。

  • 问题内容: 如何在Java中创建一个空文件夹? 问题答案:

  • 问题内容: 我试图使用 File类 在“ C:/ Temp / Emptyfile”之 类 的目录中创建一个空文件。但是,当我这样做时,它显示了一个错误:“已经创建了文件夹Temp”。否则,它不会为我创造一个。 那么,如何从字面上创建使用Java API的文件夹? 问题答案: 在对象上使用该方法的外观文件:http : //www.roseindia.net/java/beginners/java

  • 问题内容: 我正在尝试为外部应用程序创建HUD样式显示。 为此,我需要创建一个透明的叠加窗口,该窗口将位于外部应用程序窗口的顶部。覆盖窗口应允许我放置小部件并在其上绘制文本。如果事件发生在透明区域上,则事件应该转发到基础窗口(否则,使窗口小部件可以按预期工作)。 我正在使用Java的OSX上执行此操作。我希望可以使用纯Java来实现此目的,并且可以移植到其他平台,但如果不可能的话,我会选择可以通过

  • 问题内容: import java.io.File; File folder = new File(Environment.getExternalStorageDirectory() + “/TollCulator”); boolean success = true; if (!folder.exists()) { //Toast.makeText(MainActivity.this, “Dire