我目前正在编写一个GUI,在该GUI中,一旦验证了用户密码,便可以将其用于其他功能,例如sybase db connect和webscrape登录。但是,我很难在其定义的QWidget类之外引用password变量。
我的主窗口代码。它包含几个堆叠的小部件,我可以使用菜单栏进行切换以进行查看。
class Tool(QMainWindow):
def __init__(self, parent=None):
QMainWindow.__init__(self, parent)
self.setWindowTitle("Tool")
self.central_widget = QStackedWidget()
self.setCentralWidget(self.central_widget)
self.login_screen = login(self)
self.second_screen = second(self)
...
登录Qwidget。在这里定义了self.pw,以及我想传递给其他QWidget的内容。
class login(QWidget):
def __init__(self, parent=None):
super(login, self).__init__(parent)
...
self.pw = self.textbar_1.text()
...
def validation(self)
win32 pw validation
...
例如,我的第二个屏幕需要使用self.pw变量来连接到数据库:
class second(QWidget):
def __init__(self, parent=None):
super(second, self).__init__(parent)
self.td_pushButton.clicked.connect(self.mailer)
...
def mailer(self):
connect to Thread signal
...
我的线程类引用了另一个py文件中的另一个类。
class Thread(QThread):
def __init__(self, parent=None):
QtCore.QThread.__init__(self, parent)
def run(self):
from another import sql
...
最后,这是一个单独的py文件中的类,该文件处理数据库连接。
class another(object):
def __init__(self, pw):
...
def sql(self):
self.db = Sybase.connect('', me, self.pw, '')
我计划以类似的方式在第三个QWidget上设置webscrape功能的登录名,因此非常感谢能有效传递self.pw的任何提示。