学习使用eric ide用qt编程python。但似乎有一个错误。
它说Global Qurl没有定义或什么。我如何定义Qurl?
from PyQt4.QtGui import QMainWindow
from PyQt4.QtCore import pyqtSignature
from Ui_mainwindow import Ui_MainWindow
class MainWindow(QMainWindow, Ui_MainWindow):
"""
Class documentation goes here.
"""
def __init__(self, parent = None):
"""
Constructor
"""
QMainWindow.__init__(self, parent)
self.setupUi(self)
@pyqtSignature("")
def on_btnNavigate_released(self):
"""
Public slot invoked when the user clicks the Navigate Button .
"""
self.webView.load(QUrl("http://qt.nokia.com/"));
关注this教程
答案 0 :(得分:3)
您发布的代码主要由Eric4 IDE自动生成,作为您发布链接的教程的一部分。
如果您仔细阅读了本教程的this page,则会在QUrl
方法的代码段(页面底部附近)后面的段落中提及导入on_btnNavigate_released
:
请注意,为此,我们必须导入QUrl(请查看教程附带的源代码)。
虽然,对您而言,源代码片段实际上并没有显示相关的导入行!应该看起来更像这样:
from PyQt4.QtCore import pyqtSignature, QUrl
...
@pyqtSignature("")
def on_btnNavigate_released(self):
"""
Slot documentation goes here.
"""
self.webView.setUrl(QUrl(self.txtUrl.text()))
答案 1 :(得分:0)
您没有从任何地方导入QUrl
。这样做:
from PyQt4.QtCore import *
请注意,您也可以从QUrl
导入QtCore
,但此处*
导入很常见,因为QtCore
很大且所有类都有{{1}前缀所以不难猜出它们来自哪里。这当然是一种风格问题,但我个人使用Q
和*
导入QtCore
。 PyQt书籍样本也是如此。