wb_pick_path_dialogs.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:scm-workbench 作者: barry-scott 项目源码 文件源码
def pickFolder( parent, orig_folder ):
    if orig_folder is None or orig_folder == '.':
        orig_folder = wb_platform_specific.getHomeFolder()

    folder = orig_folder

    if folder.exists():
        if not folder.is_dir():
            folder = folder.parent

    else:
        while not orig_folder.exists():
            orig_folder = orig_folder.parent

    file_browser = QtWidgets.QFileDialog( parent )
    file_browser.setFileMode( file_browser.Directory )

    #
    # When ShowDirsOnly is True QFileDialog show a number of
    # bugs:
    # 1. folder double click edits folder name
    # 2. setDirectory does not work, always starts in $HOME
    #
    file_browser.setOption( file_browser.ShowDirsOnly, False )
    file_browser.setOption( file_browser.ReadOnly, True )
    file_browser.setViewMode( file_browser.Detail )
    file_browser.setFilter( QtCore.QDir.Hidden | QtCore.QDir.Dirs )

    file_browser.setDirectory( str( folder ) )
    file_browser.selectFile( str( orig_folder ) )

    if file_browser.exec_():
        all_directories = file_browser.selectedFiles()
        assert len(all_directories) == 1
        return pathlib.Path( all_directories[0] )

    return None
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号