在这里完成大脑屁,甚至不确定我在问正确的问题。如何添加/更改类中存在的类的方法?
我正在构建一个在QtDesigner中设计的QT GUI。我的Python程序导入并创建一个子类到GUI文件类的新类。我想将方法更改为该类中的按钮。
所以基本上我有以下内容,我想为'aButton'添加一个方法。
qtDesignerFile.py
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
self.aButton = QtGui.QPushButton()
myPythonFile.py
import qtDesignerFile
class slidingAppView(QMainWindow,slidingGuiUi.Ui_MainWindow):
def __init__(self,parent=None):
super(slidingAppView,self).__init__(parent)
答案 0 :(得分:2)
为了增加Joran的答案,方法如下:
def foo():
pass
instance.foo = foo
将像静态方法一样(它们不会将实例作为第一个参数传递)。如果要添加绑定方法,可以执行以下操作:
from types import MethodType
def foo(instance):
# this function will receive the instance as first argument
# similar to a bound method
pass
instance.foo = MethodType(foo, instance, instance.__class__)
答案 1 :(得分:0)
self.aButton.PrintHello = lambda : print "hello!"
或
def aMethod():
do_something()
self.aButton.DoSomething = aMethod
要么应该工作......可能还有更多方法...这假设aButton是一个继承自Object的python类