Qurl没有在pyqt中定义

时间:2011-12-11 07:45:19

标签: python import pyqt pyqt4

学习使用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教程

2 个答案:

答案 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书籍样本也是如此。