def home(self):
btn = QtGui.QPushButton("Log in", self)
self.show()
if btn.clicked:
btn.clicked.connect(btn.deleteLater)
self.Page()
else:
pass
def Page(self):
btn2 = QtGui.QPushButton("Exit", self)
self.show()
很抱歉,如果缩进在这里不正确,但它在我的python文件中: 所以btn在按下时会删除,但是Page函数没有正确运行,因为btn2没有出现。
这只是粘贴的相关代码段。
TIA获取有关为什么没有运行Page功能的帮助。我正在使用python 2,7和pyqt4
答案 0 :(得分:0)
看起来btn
变量是home
方法中的本地变量。这意味着它只在此方法中可见(除非它在更高级别的范围内定义。)
如果要在类的多个方法中共享变量,则应将其存储为对象属性 - 这就是为什么需要一些OOP。例如(假设您的类定义的其余部分):
class YourApp(object):
def __init__(self):
# All the preparations should go here.
# If self.btn is created later dynamically,
# it's still recommended to declare it here
# and assign `None` to it
self.btn = QtGui.QPushButton("Log in", self)
def home(self):
# Do stuff with self.btn
self.btn.spam()
pass
def page(self):
# Do other stuff with self.btn
self.btn.eggs()