2012-10-24 30 views
1

是否可以多次初始化和刪除QApplication實例?PyQt4:多次初始化和刪除QApplication實例

下面是一個示例代碼:

while some_condition: 
    app = QApplication(sys.argv) 

    some_actions 

    del app 

我試過了,但它似乎是不可能的。

如果我想在一個文件中多次初始化和刪除QApplication實例,我該怎麼做?

UPDATE

在這裏,我想用QtWebKit抓取了一些網頁,它會自動解析AJAX。但是當我使用QApplication(sys.argv).exec_()來啓動事件循環時,我無法在代碼中添加新的URL,因爲它進入了一個循環。所以我認爲,如果我可以多次初始化和刪除這個類,那麼我可以添加新的網址來抓取。但它失敗了。我不明白爲什麼事件循環似乎仍然存在,即使我刪除了實例。

當我使用QApplication(sys).processEvents()時,我發現這些問題可以正確解決。

對不起,我的表情不好。

+2

也許你可以調用'app.quit()''而不是德爾app'。我很好奇,你爲什麼這樣做?你想達到什麼目的? –

+0

@GaryHughes如果我調用'app.quit()',程序將終止。我只是想多次使用一個PyQt4對象。不管怎麼說,還是要謝謝你。我找到解決方案。而不是使用'QApplication(sys.argv).exec _()',使用'QApplication(sys.argv).processEvents()'是一種更好的做法,然後我可以控制事件循環。 – flyer

+0

除了創建'app'對象嗎?這意味着你有兩個'QApplication'實例,這與文檔中寫的內容不符。也許'app.processEvents()'是你所需要的?我仍然不確定你想要實際做什麼,但在這裏似乎並不正確。 –

回答

1

使用QApplication(sys.argv).processEvents()而不是QApplication(sys.argv).exec_()

+0

如果此答案解決了您的問題,請接受它。謝謝! –