2012-06-08 106 views
1

如果我試圖創建一個窗口或在IDLE shell中提示文件對話框,則不會打開任何內容並重新啓動外殼。這是一種錯誤嗎?我找不到任何關於它的事情。我是PyQt(通常是Python)的新手,但已經能夠讓教程正常工作。最後一天左右,如果我打開IDLE並導入PyQt4,QtGui等,然後運行諸如QFileDialog.getOpenFileName之類的簡單東西,那麼shell就會重新啓動。有任何想法嗎?PyQt重新啓動外殼

回答

1

你需要有一個QApplication,然後才能使用PyQt的其他任何東西。嘗試重新閱讀你所遵循的一些教程,或者再做一些。例如This one

在上面的教程的第一個代碼示例,要特別注意這些行(我已經包括從教程爲方便起見,評論):

app = QtGui.QApplication(sys.argv) 

每個PyQt4的應用程序必須創建一個應用程序目的。 應用程序對象位於QtGui模塊中。 sys.argv 參數是來自命令行的參數列表。 Python腳本 可以從shell運行。這是一種方法,我們如何控制腳本的啓動 。

sys.exit(app.exec_()) 

最後,我們進入應用程序的主循環。事件處理 從這一點開始。主循環接收來自窗口 系統的事件,並將它們分派給應用程序小部件。主循環 結束,如果我們調用exit()方法或主小部件被銷燬。 sys.exit()方法確保乾淨退出。環境將通知 ,應用程序如何結束。

exec_()方法有一個下劃線。這是因爲該exec是一個 Python關鍵字。因此,使用exec_()代替。

看來你可能已經忘記了這些。或者,您可能還沒有意識到這意味着您通常不能在交互式shell中使用帶有運行事件循環的PyQt。但是,有一個技巧,請參閱here

+0

恩......我不覺得傻。非常感謝你! –