2016-02-16 40 views
0

我希望用一個QPushButton打開包含在同一文件夾中的程序文​​件。 這是我的代碼:如何在Python打開一個文件,同時使用PyQt5

file1 = self.lineedit1.text() 
    file1 = file1 + ".txt" 
    self.button1.clicked.connect(self.open_file(file1)) 

這是我的函數被調用:

def open_file(clicked, file): 
     os.startfile(file) 

任何想法,爲什麼它不工作? 非常感謝

編輯:當我運行它通過IDLE(F5),它會打開文件時,它甚至建立了GUI意味着我還沒有按下按鈕但它被調用函數和程序崩潰之前。當我通過單擊可執行文件來運行它時,它會立即崩潰而無需打開文件並構建gui。

+1

它怎麼不工作? –

回答

0

信號插槽-連接必須的信號,並且一個可調用之間進行。你立即調用你的open_file-Function,而不是僅僅將它作爲可調用函數傳遞。

此外,您評估lineedit文本太早 - 我想你想利用它的按鈕被按下時,而不是在運行代碼來設置的東西,值。

這樣的代碼看起來大致是這樣的:

# local function closure, thus it knows self 
# from the surrounding 
def open_file(): 
    file1 = self.lineedit1.text() + ".txt" 
    os.startfile(file) 

self.button1.clicked.connect(open_file) # no call! 
+0

非常感謝你現在的工作:) 雖然我的意思是,以評估它的早期,它的只讀行編輯控件,作爲標籤工作(僅使用它的美學TBH),但你不會知道,從我上下文 – Diran

相關問題