pyside获取目录选择? [英] pyside Get directory selected?

查看:186
本文介绍了pyside获取目录选择?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在用户从浏览...按钮中选择目录后,如何从中选择目录?我的目标是使用项目字段中的名称在该目录中创建一个文件夹。这是目录选择,这是我需要帮助的最后一部分。谢谢大家。

How can I get the directory selected from after the user selects it from the 'browse...' button? My goal is to make a folder get created in that directory using the name in the project field. This 'selecting of the directory' is the last part I need help figuring out. Thank you guys.

import sys
import os
from PySide import QtGui

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):

        QtGui.QToolTip.setFont(QtGui.QFont('SansSerif', 10))

        self.setToolTip('This is a <b>QWidget</b> widget')

        # EditText Field
        labelProjectName = QtGui.QLabel('Project Name:', self)
        labelProjectName.move(15, 10)

        self.etProjectName = QtGui.QLineEdit('', self)
        self.etProjectName.resize(self.etProjectName.sizeHint())
        self.etProjectName.move(90, 7)

        # Folder Browser
        lbBroswer = QtGui.QLabel('Directory:', self)
        lbBroswer.move(15, 40)

        self.etBrowser = QtGui.QLineEdit('', self)
        self.etBrowser.resize(210,20)
        self.etBrowser.move(90, 37)
        self.etBrowser.setEnabled(0)
        # self.etBrowser.isReadOnly = 0

        btnBrowse = QtGui.QPushButton('...', self)
        btnBrowse.setToolTip('Select directory for project location.')
        btnBrowse.resize(30,20)
        btnBrowse.move(305, 37)
        btnBrowse.clicked.connect(self.selectDirectory)

        # Button UI
        btn = QtGui.QPushButton('Create Folder', self)
        btn.setToolTip('This creates the folders.')
        btn.resize(btn.sizeHint())
        btn.move(5, 60)       
        btn.clicked.connect(self.generateFolders)

        self.resize(350, 150)
        self.center()

        self.setWindowTitle('Folder Utility')    
        self.show()

    def center(self):

        qr = self.frameGeometry()
        cp = QtGui.QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())

    def selectDirectory(self):

        dialog = QtGui.QFileDialog()
        dialog.setFileMode(QtGui.QFileDialog.Directory)
        dialog.setOption(QtGui.QFileDialog.ShowDirsOnly)
        dialog.exec_()

        print 'select directory'

    def generateFolders(self):

        directory = "C:/Users/HP/Desktop/TRASH/Projects"
        projectName = self.etProjectName.text()
        folderNames = ['spam', 'ham', 'eggs']

        for f in folderNames:
            filePath = str(directory) +  "/" + str(projectName) + "/" + str(f)

            if not os.path.exists(filePath):
                os.makedirs(filePath)

        print 'Successfully Created Folders!'

def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()


推荐答案

您应使用 QtGui.QFileDialog.getExistingDirectory

def selectDirectory(self):

    selected_directory = QtGui.QFileDialog.getExistingDirectory()

    # Use the selected directory...
    print 'selected_directory:', selected_directory

这篇关于pyside获取目录选择?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆