я делаю Gui, используя qt designer и python. У меня есть два класса на demo.py и demo2.py, которые находятся в одном каталоге / папке. Когда кнопка нажимает на демо, я могу показать demo2 и скрыть демо, используя OOP составкак внизу.Но потом я так растерялся, почему не могу спрятать demo2 (как ниже).Это demo.py
From demo2 import Ui_Form
Class Ui_For(object):
def log(s):
s.U=QtGui.QWidget()
s.x=Ui_Form()
s.x.setupUi(s.U)
s.U.show()
Form.hide()
def setupUi(self,Form):
'''the things that are going to be stated here are the Qlabels(QtGui.Qlabel),Qline edit,the button that connects to method log also,which is working good and other things of this window just like the qt designer write it'''
If __name__=='__main__':
import sys
app=QtGui.QApplication(sys.argv)
Form=QtGui.QWidget()
ui=Ui_For()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
И это demo2
Class Ui_Form(object):
def oy(o):
ui.U.hide()#this the the one bringing error
def setupUi(self,Form):
'''And the rest of the code(there is push button here that connects to method oy,and it works good'''
Когда я захожу в виджет demo2, когда я нажимаю кнопку и подключаюсь к методу oy, "name 'ui'не определено "возникает ошибка. Но почему?
Вещи, которые я пробовал:
1. def oy(o):
o.x=3
print(getattr(o,'x'))#works great and gives me 3 as expected
Но если я сделал это вместо этого,`
print(getattr(ui.x,'x'))#i get "name 'ui' is not defined" error
Почему это? Разве 'o' не то же самое, что 'ui.x' в этом случае?