簡體   English   中英

使用pyQt單擊按鈕時,以特定順序打開網址

[英]open urls in a certain order when clicking a button using pyQt

我正在嘗試使用pyQt構建一個URL打開器。 一切都很好,但是當我嘗試一次打開多個URL時,它們無序打開。 例如,我運行類似於下面的代碼

def UK_N(self):
    if self.txt_S_UK.text() != '':
        url = 'url1'
        webbrowser.open(url)

def FR_N(self):
    if self.txt_S_FR.text() != '':
        url = 'url2'
        webbrowser.open(url)

def DE_N(self):
    if self.txt_S_DE.text() != '':
        url = 'url3'
        webbrowser.open(url)


def Open_N(self):
    if self.box_N_UK.isChecked() == True:
        self.UK_N()
    if self.box_N_FR.isChecked() == True:
        self.FR_N()
    if self.box_N_DE.isChecked() == True:
        self.DE_N()


self.btn_N_Open.clicked.connect(lambda: self.Open_N())

我得到的是3個選項卡,其中第一個是url3,第二個是url1,第三個是url2。 有沒有辦法讓它們按照我對它們的編程順序顯示?

這似乎取決於您無法控制的外部流程。 理想情況下,您將打開第一個URL,等待它已加載的通知,然后打開下一個URL,依此類推。 但是,當然,沒有這樣的通知,因此這似乎是不可能的。

顯然,選項卡的順序取決於資源的性質,因為它們是異步加載的,並且某些加載可能比其他加載快得多。 但是,您可以嘗試通過使用計時器引入小的延遲來在程序中稍微控制一些事情:

    QtCore.QTimer.singleShot(200, lambda: webbrowser.open(url))

但是,如果這不起作用,我不會感到驚訝。

暫無
暫無

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

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