Python PyQT-如何在不选择文件夹或取消选项的情况下打开窗口?

Python PyQT-如何在不选择文件夹或取消选项的情况下打开窗口?,python,pyqt4,Python,Pyqt4,我的qt应用程序运行一个进程并将结果保存在特定目录中 现在,用户必须转到文件夹查看结果。通常是excel文件 我尝试过getExistingDirectory/getOpenFileName,它在其中打开目录路径以选择文件夹或打开文件 我只想打开一个独立于pyqt4的文件夹。(例如:在Windows中按“Windows+E”快捷键 from PyQt4 import QtGui,QtCore import sys,os class OpenDir(QtGui.QMainWindow):

我的qt应用程序运行一个进程并将结果保存在特定目录中

现在,用户必须转到文件夹查看结果。通常是excel文件

我尝试过getExistingDirectory/getOpenFileName,它在其中打开目录路径以选择文件夹或打开文件

我只想打开一个独立于pyqt4的文件夹。(例如:在Windows中按“Windows+E”快捷键

from PyQt4 import QtGui,QtCore
import sys,os

class OpenDir(QtGui.QMainWindow):
    def __init__(self):
        super(OpenDir, self).__init__()
        # self.openDirectory()
        self.button = QtGui.QPushButton('Open', self)
        self.button.clicked.connect(self.openDirectory)
        self.setCentralWidget(self.button)

    def openDirectory(self):
        print "Hi i am openDirectory Function . I will open Directory selected "
        openDirectoryDialog=QtGui.QFileDialog()
        print openDirectoryDialog

        # oD=openDirectoryDialog.getExistingDirectory(self,"open",os.path.abspath("..\."),openDirectoryDialog.ShowDirsOnly)  #Selectes folder
        # oD = openDirectoryDialog.directoryEntered(self,"open", os.path.abspath("..\."))
        print oD


        if len(oD) > 0:
            print "accepted"
        else:
            print "nothing selected"


def main():
    app = QtGui.QApplication(sys.argv)
    ui=OpenDir()
    ui.show()
    sys.exit(app.exec_())
#Function Main END

if __name__ == '__main__':
    main()

您可以使用按键事件进行此操作。以下是F1的示例

from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys,os

class OpenDir(QMainWindow):
    def __init__(self):
        super(OpenDir, self).__init__()
        # self.openDirectory()
        self.button = QPushButton('Open', self)
        self.button.clicked.connect(self.openDirectory)
        self.setCentralWidget(self.button)

    def openDirectory(self):
        print "Hi i am openDirectory Function . I will open Directory selected "
        self.openDirectoryDialog=ddir = QFileDialog.getExistingDirectory(self, "Get Dir Path")
        print self.openDirectoryDialog

    def keyPressEvent(self, e):
        if e.key() == Qt.Key_F1:
            os.system('xdg-open "%s"' % self.openDirectoryDialog)

def main():
    app = QApplication(sys.argv)
    ui=OpenDir()
    ui.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

你可能正在寻找这个问题的答案:答案是C++,但是很容易适应Python。如果你只针对没有可移植性的窗口,你可以用这个命令启动ExcReal.EXE命令:代码\> Windows \Exel.EXE/SELECT,< /Cord>。@ NeITSA:谢谢,这确实有帮助。但是我一直在寻找pyqt Qfil的方法。eDialog或pyqt.Thankyou.xdg open中的任何其他模块是一个linux命令。但是它在linux中工作。实际上,您可以用类似的方式对所有操作系统进行标准化: