簡體   English   中英

PyQt4,生成同一小部件​​的多個實例?

[英]PyQt4, Generating multiple Instances of the same widget?

我正在創建一個PyQt4 gui,它允許qmainwindow中的用戶輸入一些初始參數,然后單擊“開始”按鈕以啟動程序。 當他們單擊開始按鈕時,將顯示一個顯示參數的新窗口,然后程序開始。 我希望用戶能夠啟動該程序的多個實例。 但是,當在qmainwindow中更改參數並再次單擊開始按鈕時,第一個程序窗口消失。

有沒有一種方法可以讓開始按鈕調用與第一個窗口同時運行的第二個窗口? 我想這就像是線程,但是據我所讀,PyQt4似乎沒有在應用程序中進行線程化的方法。

任何幫助將非常感激。

我猜您正在將對新創建的窗口的引用保存在同一變量中。 如果要創建多個窗口,請嘗試將對該窗口的引用保存在單獨的變量中,即,每個窗口應具有自己的引用變量。

def showWindow(self):
    self.child = Window(self)
    self.child.show()

如果是這種情況,則在第二次執行showWindow()時,第一個窗口將失去對它的引用。 因為self.child將包含對第二個窗口的引用,導致關閉第一個窗口,因為第一個窗口沒有引用參考。 一旦該小部件在Qt中失去引用,該小部件將被銷毀。 要解決此問題,請維護一個變量列表:

# declare a list in __init__ as self.widgetList = []

def showWindow(self):
    win = Window(self):
    win.show()
    self.widgetList.append(win)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM