繁体   English   中英

PyQT4如何使用其他模型的def

[英]PyQT4 how to using def from others model

此代码有效:

import sys
from PyQt4 import QtCore, QtGui, QtWebKit
from forma import Ui_MainWindow

class MyForm(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        QtCore.QObject.connect(self.ui.pushButton,QtCore.SIGNAL("clicked()"), self.strona)

    def strona(self):
        self.ui.webView.setUrl(QtCore.QUrl("http://plemiona.pl"))

但是这个

funkcje.py

from PyQt4 import QtCore, QtGui, QtWebKit
from forma import Ui_MainWindow

def strona():
        self.ui.webView.setUrl(QtCore.QUrl("http://xxxx.pl"))



import sys, time, funkcje
from PyQt4 import QtCore, QtGui, QtWebKit
from forma import Ui_MainWindow

class MyForm(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        QtCore.QObject.connect(self.ui.pushButton,QtCore.SIGNAL("clicked()"), funkcje.strona)

不起作用...

Traceback (most recent call last):
  File "C:\Python33\liczbapierwsza\TribalWarsBot\funkcje.py", line 5, in przejdz_na_strone_plemion
    QtGui.QWidget.__init__(self, parent)
NameError: global name 'self' is not defined

如何从funkcje.py导入函数并在ex run.py中使用

strona需要访问类实例self。 我不确定如何使用Qt传递self参数,但是您始终可以将包装函数作为类的一部分编写,该函数调用strona并传递self参数。 或导入类型并将types.MethodType(funkcje.strona, self, MyForm)到类构造函数( __init__ )。 这会将funkcje.strona添加到类中。 请注意,后者未经我测试。

编辑:这是做什么:

class MyForm(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        types.MethodType(strona, self, MyForm) 
        QtCore.QObject.connect(self.ui.pushButton,QtCore.SIGNAL("clicked()"), strona)

注意:这未经测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM