如何从PyQt4中的另一个QWidget调用QWidget方法变量

时间:2019-02-12 01:43:54

标签: python pyqt

我目前正在编写一个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的任何提示。

0 个答案:

没有答案