Qt:脚本在按下按钮之前运行

2024-04-26 17:25:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个gui,它有两个按钮:一个是“打开输入文件”,另一个是“运行”。你知道吗

当某人单击“打开输入文件:”时,他/她可以选择一个文件作为输入,当此人单击“运行”时,脚本runScrapy应该开始。你知道吗

设置按钮的部分如下所示:

def retranslateUi(self, MainWindow):
    _translate = QtCore.QCoreApplication.translate
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
    self.pushButton.setText(_translate("MainWindow", "Open Input File:"))
    self.pushButton.clicked.connect(self.showDialog)
    self.pushButton_2.setText(_translate("MainWindow", "Run"))
    self.pushButton_2.clicked.connect(self.runScrapy)
    self.label.setText(_translate("MainWindow", "Happy Scraping"))

def showDialog(self):
    fileName = QFileDialog.getOpenFileName()
    if fileName:
        global file
        file = fileName[0]
        print(file)

def runScrapy(self):
    process = CrawlerProcess()
    process.crawl(BasicSpider)
    process.start()  # the script will block here until the crawling is finished

但是,当点击按钮2时,不是运行“runScrapy”,而是在我启动这个脚本之后,“runScrapy”立即开始运行。我不明白为什么,因为showDialog只有在您单击“打开输入文件:”后才会弹出。你知道吗

问:如何更改代码,使runScrapy只在单击按钮2时运行?你知道吗

提前谢谢!你知道吗


Tags: 文件self脚本deffilenameprocess按钮translate