从另一个类方法Python(和PyQt)调用变量

从另一个类方法Python(和PyQt)调用变量,python,sql,pyqt,Python,Sql,Pyqt,我需要一个变量来保存登录详细信息,我的所有类都在单独的文件中 第一个类是登录窗口,它将从数据库中获取用户名和密码 LoginBtn.clicked.connect(self.CheckLogin) def CheckLogin(self): self.username = self.usernameLE.text() self.password = self.passwordLE.text() with sqlite3.connect("Account

我需要一个变量来保存登录详细信息,我的所有类都在单独的文件中

第一个类是登录窗口,它将从数据库中获取用户名和密码

        LoginBtn.clicked.connect(self.CheckLogin)

def CheckLogin(self):
    self.username = self.usernameLE.text()
    self.password = self.passwordLE.text()

    with sqlite3.connect("Accounts.db") as db:
        cursor = db.cursor()
        cursor.execute("SELECT * FROM Accounts WHERE Username=? ",(self.username,))
        self.account = cursor.fetchone()

    try:
        if self.account[0] == self.username and self.account[1] == self.password:
            if self.account[2] == 'Admin':
                self.OpenSystem = CurrentLayoutAdmin()
                self.OpenSystem.show()
                self.hide()
            elif self.account[2] == 'Manager':
                self.departmentsave = self.account[2]
                self.OpenManagerSystem = CurrentLayoutManager() #This goes to main menu and once a button is clicked it opens up another window. The one I need the variable for.
                self.OpenManagerSystem.show()
                self.hide()
            else:
                pass
        else:
            self.invalid_lbl.setVisible(True)
            self.passwordLE.setText('')               
    except TypeError:
        self.invalid_lbl.setVisible(True)
        self.passwordLE.setText('')
我需要保存该部门的self.account[2]

def CreateTable(self): 
    accountdetails = LoginWindow()
    accountdetails.CheckLogin()
    print(accountdetails.departmentsave)

我不知道如何调用这个变量。

您能在所示的方法中添加一个类属性吗:self.departmentsave=self.account[2]?对不起,我不完全理解您对python的新含义。我已经创建了这个变量,但是我不知道如何从另一个类调用它。我愚蠢地把class属性放在实际类的括号中,而不是_uinit_;如果你仍然需要帮助,你会像以前一样调用它。我不确定我是否理解这个问题,但如果您在CheckLogin方法中执行self.departmentsave=self.account[2],那么您只需执行以下操作:printcountdetails.departmentsave,它就会工作。如果我正确理解你的问题,我可以把上面的问题写在下面的答案中。