Search code examples
pythonpyqt

Open file with pyQt


There is a button.
When it is clicked, file C:\file.txt should be opened with default text editor (as if it is double clicked).
Is it possible in pyQt? Button is pressed -> file is opened.
All I can google is just dialogs, but I don't need them.

file = 'C:\file.txt'
widget.connect(button, QtCore.SIGNAL('clicked()'), ????)

How it can be done?


Solution

  • def openFile(file):
        if sys.platform == 'linux2':
            subprocess.call(["xdg-open", file])
        else:
            os.startfile(file)
    

    And edit your 2nd line to:

    widget.connect(button, QtCore.SIGNAL('clicked()'), openFile(file))
    

    Code for opening file copied from How to open a file with the standard application?