簡體   English   中英

如何使用 QUiLoader() 和 pyside2 打開新的 window

[英]how to open new window using QUiLoader() with pyside2

我有一個使用 qtdesigner 設計的主要 window。 當我按下一個按鈕時,我想打開一個新的 window。 To do that, I was thinking it was possible to use the Qt loader function and I wrote this function (this function is executed when I press a button in my main window).

def open_new_window(self):
    ui_file = QFile('gui/new_window.ui')
    ui_file.open(QFile.ReadOnly)
    loader = QUiLoader()
    self.window = loader.load(ui_file)
    ui_file.close()

    return

但是當我這樣做時,它會關閉程序。 關於有什么問題的任何想法? 我可以使用加載器 function 打開我的 uifile 嗎? 它適用於個性化小部件導入,為什么不適用新的 window?

編輯:

我稍微改變了 function :

def open_new_window(self):

    ui_file = QFile('gui/new_window.ui')
    ui_file.open(QFile.ReadOnly)  
    loader = QUiLoader()
    window = loader.load(ui_file)
    window.show()
    ui_file.close()

    return

這次第 2 個 window 正在打開,但瞬間關閉......

好,我知道了。 正確的代碼是:

def open_new_window(self):

    ui_file = QFile('gui/new_window.ui')
    ui_file.open(QFile.ReadOnly)  
    loader = QUiLoader()
    self.window2 = loader.load(ui_file)
    self.window2.show()
    ui_file.close()

    return

我改變了什么: - 我插入了“自我”。 在 window 調用之前。 否則,window 將立即關閉,因為 function 已結束。 有了自我,它仍然活着。 - 我還在“window2”中更改了 window 的名稱。 原因是當我調用我的主 window 時,我已經使用了“窗口”。 結果,它取代了前一個。 有了新名字,都保持開放!

問候

暫無
暫無

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

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