从登录表单传递变量

时间:2017-04-27 21:13:52

标签: python pyqt

我试图从登录表单传递两个变量。不确定它是否正确。我的登录表单和在QstackedWidget上创建的主要表单。但是,结果我得到一个空列表。我的错误在哪里?代码如下:

from PyQt4.QtGui import *
from PyQt4.QtCore import *

class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        QMainWindow.__init__(self, parent)
        self.central_widget = QStackedWidget()
        self.setCentralWidget(self.central_widget)
        self.start_screen = Start(self)
        self.second_screen = Second(self)
        self.central_widget.addWidget(self.start_screen)
        self.central_widget.addWidget(self.second_screen)
        self.central_widget.setCurrentWidget(self.start_screen)
        self.start_screen.clicked.connect(lambda:   self.myshort(self.second_screen))
        self.second_screen.clicked.connect(lambda:  self.central_widget.setCurrentWidget(self.start_screen))

    def myshort(self, your_function):
        print(self.my_notes[0], self.my_notes[1]) #empty list
        return self.central_widget.setCurrentWidget(your_function)

class Start(QWidget):
    clicked = pyqtSignal()
    def __init__(self, parent=None):
        super(Start, self).__init__(parent)
        self.textName = QLineEdit(self)
        self.textPass = QLineEdit(self)
        self.buttonSave = QPushButton('Save Details', self)
        layout = QVBoxLayout(self)
        layout.addWidget(self.textName)
        layout.addWidget(self.textPass)
        layout.addWidget(self.buttonSave)
        self.buttonSave.clicked.connect(self.my_notes())

    def my_notes(self):
        MainWindow.my_notes = []
        MainWindow.my_notes.append(str(self.textName.text()))
        MainWindow.my_notes.append(str(self.textPass.text()))
        return self.clicked.emit


class Second(QWidget):
    clicked = pyqtSignal()
    def __init__(self, parent=None):
        super(Second, self).__init__(parent)
        layout = QHBoxLayout()
        button = QPushButton(text=QString('Back to Start!'))
        layout.addWidget(button)
        self.setLayout(layout)
        button.clicked.connect(self.clicked.emit)


app = QApplication(sys.argv)
myWindow = MainWindow(None)
myWindow.show()
app.exec_()

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

<{1>}中的

,方法class Start

__init__

删除手镯:

self.buttonSave.clicked.connect(self.my_notes())

并在self.buttonSave.clicked.connect(self.my_notes) 中,方法class Start更改:

my_notes

到:

return self.clicked.emit
相关问题