我正在尝试使用pyQt构建一个url opener。一切都很好,但当我尝试一次打开多个URL时,他们打开无序。例如,我运行simillar到下面的代码
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位于第三个url2中。有没有办法让这些按照我编程的顺序出现?
答案 0 :(得分:0)
这似乎取决于您无法控制的外部流程。理想情况下,您可以打开第一个网址,等待已加载的通知,然后打开下一个网址,依此类推。但当然,没有这样的通知,所以这似乎不可能。
显然,选项卡的顺序取决于资源的性质,因为它们是异步加载的,有些可能比其他加载速度快得多。但是,您可以尝试通过使用计时器来引入一个小延迟来控制程序中的一些东西:
QtCore.QTimer.singleShot(200, lambda: webbrowser.open(url))
如果这不起作用我不会感到惊讶,不过......