-1
我創建了一個pyqt腳本,這個腳本已經由我自己創建了,但是我昨天開始學習pyqt,並且剛剛從我的腳本實現了一個函數,但是在調用函數後它很快崩潰了。我是pyqt的初學者,所以我同意格式可能很差。當某個函數啓動時PyQt5代碼失敗
下面是代碼:
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
from lxml import html
import requests
class Ui_ShopifyFeeder(object):
def started(self):
print("STARTED...\n")
resp = requests.get('https://www.google.com/', headers=headers)
print(resp.content)
def setupUi(self, ShopifyFeeder):
ShopifyFeeder.setObjectName("ShopifyFeeder")
ShopifyFeeder.resize(423, 105)
self.gridLayout = QtWidgets.QGridLayout(ShopifyFeeder)
self.gridLayout.setObjectName("gridLayout")
self.constant_value = QtWidgets.QLineEdit(ShopifyFeeder)
self.constant_value.setEnabled(True)
self.constant_value.setObjectName("constant_value")
self.gridLayout.addWidget(self.constant_value, 1, 0, 1, 1)
self.percentage_value_selection = QtWidgets.QRadioButton(ShopifyFeeder)
self.percentage_value_selection.setObjectName("percentage_value_selection")
self.gridLayout.addWidget(self.percentage_value_selection, 2, 1, 1, 1)
self.percentage_value = QtWidgets.QLineEdit(ShopifyFeeder)
self.percentage_value.setObjectName("percentage_value")
self.gridLayout.addWidget(self.percentage_value, 2, 0, 1, 1)
self.constant_value_selection = QtWidgets.QRadioButton(ShopifyFeeder)
self.constant_value_selection.setObjectName("constant_value_selection")
self.gridLayout.addWidget(self.constant_value_selection, 1, 1, 1, 1)
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.starter = QtWidgets.QPushButton(ShopifyFeeder)
self.starter.clicked.connect(self.started)
self.starter.setAutoFillBackground(False)
self.starter.setObjectName("starter")
self.verticalLayout.addWidget(self.starter)
self.gridLayout.addLayout(self.verticalLayout, 3, 0, 1, 2)
self.retranslateUi(ShopifyFeeder)
self.starter.clicked['bool'].connect(ShopifyFeeder.setEnabled)
self.starter.clicked['bool'].connect(self.constant_value.setEnabled)
self.constant_value_selection.clicked['bool'].connect(self.constant_value.setDisabled)
self.percentage_value_selection.clicked['bool'].connect(self.percentage_value.setDisabled)
self.constant_value_selection.clicked['bool'].connect(self.percentage_value_selection.setDisabled)
self.constant_value_selection.clicked['bool'].connect(self.percentage_value.setDisabled)
self.percentage_value_selection.clicked['bool'].connect(self.constant_value.setDisabled)
self.percentage_value_selection.clicked['bool'].connect(self.constant_value_selection.setDisabled)
QtCore.QMetaObject.connectSlotsByName(ShopifyFeeder)
def retranslateUi(self, ShopifyFeeder):
_translate = QtCore.QCoreApplication.translate
ShopifyFeeder.setWindowTitle(_translate("ShopifyFeeder", "ShopifyFeeder"))
self.percentage_value_selection.setText(_translate("ShopifyFeeder", "Percentage"))
self.constant_value_selection.setText(_translate("ShopifyFeeder", "Constent"))
self.starter.setText(_translate("ShopifyFeeder", "Start"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
ShopifyFeeder = QtWidgets.QWidget()
ui = Ui_ShopifyFeeder()
ui.setupUi(ShopifyFeeder)
ShopifyFeeder.show()
sys.exit(app.exec_())
因此,一旦開始函數/方法被調用時,腳本print語句後崩潰。如果我能得到關於最新錯誤的信息,那將是非常好的。
注意:這段代碼可以工作,但它會在我的瀏覽器中打開一個鏈接,而我希望它完全按照請求和基本Python腳本工作。
def started(self):
print("STARTED...\n")
url = QtCore.QUrl('https://www.yahoo.com/')
if not QtGui.QDesktopServices.openUrl(url):
QtGui.QMessageBox.warning(self, 'Open Url', 'Could not open url')
好吧,我再次嘗試這種新方法,仍然腳本崩潰。
def loadPage(self):
print("STARTED...\n")
page = QtWebKit.QWebPage()
loop = QtCore.QEventLoop() # Create event loop
page.mainFrame().loadFinished.connect(loop.quit) # Connect loadFinished to loop quit
page.mainFrame().load('https://www.yahoo.com/')
loop.exec_() # Run event loop, it will end on loadFinished
print(page.mainFrame().toHtml())