2
"Open Input File:"と "Run"という2つのボタンを持つguiを作成しました。Qt:ボタンが押される前にスクリプトが実行される
「Open Input File:」をクリックすると、ファイルを入力として選択して「Run」をクリックすると、スクリプト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
しかし、代わりにpushButton_2がクリックされたときに「runScrapy」を実行するので、「runScrapyは、」私はこのスクリプトを起動した直後に実行を開始します。私は理由を理解できません。なぜなら、あなたは「Open Input File:」をクリックした後にshowDialogがポップアップするだけなので。
Q: runButton_2がクリックされたときにrunScrapyが実行されるようにコードを変更するにはどうすればよいですか?
ありがとうございます!