2011-05-18 49 views
0

有一個按鈕。
點擊時,應該使用默認文本編輯器打開文件C:\file.txt(就好像它被雙擊一樣)。
pyQt有可能嗎?按鈕被按下 - >文件被打開。
我可以谷歌只是對話框,但我不需要它們。用pyQt打開文件

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

怎麼辦?

+0

複製我認爲你是從你想可能比你所期望的要遠得多。你有一個PyQt GUI的功能,這只是一個示例代碼片斷,或者這是你的整個程序? – 2011-05-18 13:52:08

+0

是的,它是snippet。 – Qiao 2011-05-18 14:05:10

回答

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

和編輯您2號線到:

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

代碼打開文件從How to open a file with the standard application?

+0

爲什麼運行腳本時啓動文件,沒有程序(按鈕)顯示? http://snipt.org/xJng。它確實與'widget.connect'行有連接 – Qiao 2011-05-18 14:06:14

+1

&Qiao:源代碼行'connect(...,openFile(file))'_will call_ openFile。使用'lambda:openFile(file)'連接到一個調用openFile的函數,而不是任何openFile()返回的函數。 :) – Macke 2011-05-18 14:19:21

+0

剛剛開始的新問題 - http://stackoverflow.com/questions/6046362/pyqt-running-slot-from-the-start。我接力沒有耐心)'lambda:'正在工作,但現在對我來說這是一個黑匣子。 – Qiao 2011-05-18 14:31:52