代码之家  ›  专栏  ›  技术社区  ›  abhi krishnan

将lineEdit值设置为另一个类中的标签(Pyqt4)

  •  0
  • abhi krishnan  · 技术社区  · 6 年前

    from PyQt4 import QtCore, QtGui
    import time
    from PyQt4.QtCore import SIGNAL
    try:
        _fromUtf8 = QtCore.QString.fromUtf8
    except AttributeError:
        def _fromUtf8(s):
            return s
    
    try:
        _encoding = QtGui.QApplication.UnicodeUTF8
        def _translate(context, text, disambig):
            return QtGui.QApplication.translate(context, text, disambig, _encoding)
    except AttributeError:
        def _translate(context, text, disambig):
            return QtGui.QApplication.translate(context, text, disambig)
    
    
    class Ui_Dialog1(object):
        def setupUi(self, Dialog):
            self.frame = QtGui.QFrame(Dialog)
            self.frame.setGeometry(QtCore.QRect(40, 20, 311, 391))
            self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
            self.frame.setFrameShadow(QtGui.QFrame.Raised)
            self.frame.setObjectName(_fromUtf8("frame"))
            self.label = QtGui.QLabel(self.frame)
            self.label.setGeometry(QtCore.QRect(120, 180, 72, 23))
            self.label.setObjectName(_fromUtf8("label"))
            self.label.setText(_translate("Dialog", "omniOS", None))
            Dialog.setObjectName(_fromUtf8("Dialog"))
            Dialog.resize(391, 437)
            self.retranslateUi(Dialog)
            QtCore.QMetaObject.connectSlotsByName(Dialog)
        def retranslateUi(self, Dialog):
            Dialog.setWindowTitle(_translate("Dialog", "OmniOS", None))
    
    
    
    class Ui_Dialog2(object):
        def setupUi(self, Dialog):
            self.frame_2 = QtGui.QFrame(Dialog)
            self.frame_2.setGeometry(QtCore.QRect(30, 30, 311, 391))
            self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
            self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
            self.frame_2.setObjectName(_fromUtf8("frame_2"))
            self.label_2 = QtGui.QLabel(self.frame_2)
            self.label_2.setGeometry(QtCore.QRect(50, 230, 72, 31))
            self.label_2.setObjectName(_fromUtf8("label_2"))
            self.lineEdit = QtGui.QLineEdit(self.frame_2)
            self.lineEdit.setGeometry(QtCore.QRect(150, 230, 113, 33))
            self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
            self.label_2.setText(_translate("Dialog", "Login", None))
            Dialog.setObjectName(_fromUtf8("Dialog"))
            Dialog.resize(391, 437)
            self.retranslateUi(Dialog)
            QtCore.QMetaObject.connectSlotsByName(Dialog)
            self.retranslateUi(Dialog)
    
    
            self.pb = QtGui.QPushButton(self.frame_2)
            self.pb.setObjectName(_fromUtf8("login"))
            self.pb.setText("Login")
            self.connect(self.pb, SIGNAL("clicked()"), self.button_click)
    
        def button_click(self):
            # shost is a QString object
            text = self.lineEdit.text()
            print (text)
    
    
        def retranslateUi(self, Dialog):
            Dialog.setWindowTitle(_translate("Dialog", "OmniOS", None))
    
    
    class Ui_Dialog3(object):
        def setupUi(self, Dialog):
            self.frame_3 = QtGui.QFrame(Dialog)
            self.frame_3.setGeometry(QtCore.QRect(30, 30, 311, 391))
            self.frame_3.setFrameShape(QtGui.QFrame.StyledPanel)
            self.frame_3.setFrameShadow(QtGui.QFrame.Raised)
            self.frame_3.setObjectName(_fromUtf8("frame_3"))
            self.label_3 = QtGui.QLabel(self.frame_3)
            self.label_3.setGeometry(QtCore.QRect(50, 230, 72, 31))
            self.label_3.setObjectName(_fromUtf8("label_3"))
            self.label_4 = QtGui.QLabel(self.frame_3)
            self.label_4.setGeometry(QtCore.QRect(150, 230, 113, 33))
            self.label_4.setObjectName(_fromUtf8("label_4"))
            self.label_3.setText(_translate("Dialog", "Email", None))
            self.label_4.setText(_translate("Dialog", text, None))
    
            Dialog.setObjectName(_fromUtf8("Dialog"))
            Dialog.resize(391, 437)
            self.retranslateUi(Dialog)
            QtCore.QMetaObject.connectSlotsByName(Dialog)
            self.retranslateUi(Dialog)
    
        def retranslateUi(self, Dialog):
            Dialog.setWindowTitle(_translate("Dialog", "OmniOS", None))
    
    
    
    
    class Dialog1(QtGui.QDialog, Ui_Dialog1):
        def __init__(self, parent=None):
            super(Dialog1, self).__init__(parent)
            self.setupUi(self)
    
    
    class Dialog2(QtGui.QDialog, Ui_Dialog2):
        def __init__(self, parent=None):
            super(Dialog2, self).__init__(parent)
            self.setupUi(self)
    
    
    class Dialog3(QtGui.QDialog, Ui_Dialog3):
        def __init__(self, parent=None):
            super(Dialog3, self).__init__(parent)
            self.setupUi(self)
    
    
    
    if __name__=="__main__":
        import sys
        a = QtGui.QApplication(sys.argv)
        w1 = Dialog1()
        w2 = Dialog2()
        w3 = Dialog3()
    
        def on_timeout():
            w1.hide()
            w2.show()
        def on_timeout1():
            w2.hide()
            w3.show()
    
    
        w1.show()
        QtCore.QTimer.singleShot(3000, on_timeout)
        QtCore.QTimer.singleShot(6000, on_timeout1)
    
        sys.exit(a.exec_())
    

    我要做的是设置 lineEdit Dialog2 )用户输入的值 label_4 (课堂上) Dialog3 ):

    def button_click(self):
        # shost is a QString object
        text = self.lineEdit.text()
        print (text)
    

    如何更新 Dialog3.label_4 在用户输入电子邮件之后?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Degang Guo    6 年前

    更改“on\u timeout1”功能

    def on_timeout1():
        w2.hide()
        w3.show()
        w3.label_4.setText(w2.lineEdit.text())
    
        2
  •  1
  •   Alvaro Fuentes    6 年前

    1. 修改的构造函数 Dialog2 把对某个实例的引用作为输入 Dialog3 .
    2. Dialog2.button_clicked 对话框3 隐藏电流 对话框2 实例。
    3. 更改用户的登录名 "__main__" w1 w2 但是 w3 第2页 在构造函数中(因此必须首先创建w3),消除第二个计时器。

    here

    from PyQt4 import QtCore, QtGui
    import time
    from PyQt4.QtCore import SIGNAL
    try:
        _fromUtf8 = QtCore.QString.fromUtf8
    except AttributeError:
        def _fromUtf8(s):
            return s
    
    try:
        _encoding = QtGui.QApplication.UnicodeUTF8
        def _translate(context, text, disambig):
            return QtGui.QApplication.translate(context, text, disambig, _encoding)
    except AttributeError:
        def _translate(context, text, disambig):
            return QtGui.QApplication.translate(context, text, disambig)
    
    
    class Ui_Dialog1(object):
        def setupUi(self, Dialog):
            self.frame = QtGui.QFrame(Dialog)
            self.frame.setGeometry(QtCore.QRect(40, 20, 311, 391))
            self.frame.setFrameShape(QtGui.QFrame.StyledPanel)
            self.frame.setFrameShadow(QtGui.QFrame.Raised)
            self.frame.setObjectName(_fromUtf8("frame"))
            self.label = QtGui.QLabel(self.frame)
            self.label.setGeometry(QtCore.QRect(120, 180, 72, 23))
            self.label.setObjectName(_fromUtf8("label"))
            self.label.setText(_translate("Dialog", "omniOS", None))
            Dialog.setObjectName(_fromUtf8("Dialog"))
            Dialog.resize(391, 437)
            self.retranslateUi(Dialog)
            QtCore.QMetaObject.connectSlotsByName(Dialog)
        def retranslateUi(self, Dialog):
            Dialog.setWindowTitle(_translate("Dialog", "OmniOS", None))
    
    
    
    class Ui_Dialog2(object):
        def setupUi(self, Dialog):
            self.frame_2 = QtGui.QFrame(Dialog)
            self.frame_2.setGeometry(QtCore.QRect(30, 30, 311, 391))
            self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel)
            self.frame_2.setFrameShadow(QtGui.QFrame.Raised)
            self.frame_2.setObjectName(_fromUtf8("frame_2"))
            self.label_2 = QtGui.QLabel(self.frame_2)
            self.label_2.setGeometry(QtCore.QRect(50, 230, 72, 31))
            self.label_2.setObjectName(_fromUtf8("label_2"))
            self.lineEdit = QtGui.QLineEdit(self.frame_2)
            self.lineEdit.setGeometry(QtCore.QRect(150, 230, 113, 33))
            self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
            self.label_2.setText(_translate("Dialog", "Login", None))
            Dialog.setObjectName(_fromUtf8("Dialog"))
            Dialog.resize(391, 437)
            self.retranslateUi(Dialog)
            QtCore.QMetaObject.connectSlotsByName(Dialog)
            self.retranslateUi(Dialog)
    
    
            self.pb = QtGui.QPushButton(self.frame_2)
            self.pb.setObjectName(_fromUtf8("login"))
            self.pb.setText("Login")
            self.connect(self.pb, SIGNAL("clicked()"), self.button_click)
    
        def button_click(self):
            text = self.lineEdit.text()
            self.w3.label_4.setText(text)
            self.w3.show()
            self.hide()
    
    
    
    
        def retranslateUi(self, Dialog):
            Dialog.setWindowTitle(_translate("Dialog", "OmniOS", None))
    
    
    class Ui_Dialog3(object):
        def setupUi(self, Dialog):
            self.frame_3 = QtGui.QFrame(Dialog)
            self.frame_3.setGeometry(QtCore.QRect(30, 30, 311, 391))
            self.frame_3.setFrameShape(QtGui.QFrame.StyledPanel)
            self.frame_3.setFrameShadow(QtGui.QFrame.Raised)
            self.frame_3.setObjectName(_fromUtf8("frame_3"))
            self.label_3 = QtGui.QLabel(self.frame_3)
            self.label_3.setGeometry(QtCore.QRect(50, 230, 72, 31))
            self.label_3.setObjectName(_fromUtf8("label_3"))
            self.label_4 = QtGui.QLabel(self.frame_3)
            self.label_4.setGeometry(QtCore.QRect(150, 230, 113, 33))
            self.label_4.setObjectName(_fromUtf8("label_4"))
            self.label_3.setText(_translate("Dialog", "Email", None))
    
    
            Dialog.setObjectName(_fromUtf8("Dialog"))
            Dialog.resize(391, 437)
            self.retranslateUi(Dialog)
            QtCore.QMetaObject.connectSlotsByName(Dialog)
            self.retranslateUi(Dialog)
    
        def retranslateUi(self, Dialog):
            Dialog.setWindowTitle(_translate("Dialog", "OmniOS", None))
    
    
    
    
    class Dialog1(QtGui.QDialog, Ui_Dialog1):
        def __init__(self, parent=None):
            super(Dialog1, self).__init__(parent)
            self.setupUi(self)
    
    
    class Dialog2(QtGui.QDialog, Ui_Dialog2):
        def __init__(self, w3, parent=None):
            super(Dialog2, self).__init__(parent)
            self.setupUi(self)
            self.w3 = w3
    
    
    class Dialog3(QtGui.QDialog, Ui_Dialog3):
        def __init__(self, parent=None):
            super(Dialog3, self).__init__(parent)
            self.setupUi(self)
    
    
    
    if __name__=="__main__":
        import sys
        a = QtGui.QApplication(sys.argv)
        w1 = Dialog1()
        w3 = Dialog3()
        w2 = Dialog2(w3)
    
        def on_timeout():
            w1.hide()
            w2.show()
    
        w1.show()
        QtCore.QTimer.singleShot(3000, on_timeout)
    
    
        sys.exit(a.exec_())