pyQt 每日一练习 -- 登录框

#coding=utf-8

#第一个练习,登录框

import sys
from PyQt4 import QtGui,QtCore

#登录框
class LoginBox(QtGui.QWidget):
    def __init__(self):
        super(LoginBox, self).__init__()
        self.initUI()

    def initUI(self):

        vBoxLayout = QtGui.QVBoxLayout()


        hBoxLayout_1 = QtGui.QHBoxLayout()
        nameLabel = QtGui.QLabel(u"姓名:", self)
        self.nameInputEdit = QtGui.QLineEdit(self)
        self.nameInputEdit.textChanged.connect(self.inputName)
        hBoxLayout_1.addWidget(nameLabel)
        hBoxLayout_1.addWidget(self.nameInputEdit)
        vBoxLayout.addLayout(hBoxLayout_1)


        hBoxLayout_2 = QtGui.QHBoxLayout()
        passwordLabel = QtGui.QLabel(u"密码:", self)
        self.passwordInputEdit = QtGui.QLineEdit(self)
        self.passwordInputEdit.textChanged.connect(self.inputPassword)
        hBoxLayout_2.addWidget(passwordLabel)
        hBoxLayout_2.addWidget(self.passwordInputEdit)
        vBoxLayout.addLayout(hBoxLayout_2)

        hBoxLayout_3 = QtGui.QHBoxLayout()
        okBtn = QtGui.QPushButton(u"确定", self)
        cancleBtn = QtGui.QPushButton(u"取消", self)
        okBtn.clicked.connect(self.clickOkBtn)
        cancleBtn.clicked.connect(self.clickCancleBtn)
        hBoxLayout_3.addWidget(okBtn)
        hBoxLayout_3.addWidget(cancleBtn)
        vBoxLayout.addLayout(hBoxLayout_3)

        self.setLayout(vBoxLayout)

        self.setWindowIcon(QtGui.QIcon("icon.png"))
        self.setWindowTitle(u"登录框")
        self.resize(300, 150)
        self.setCenterPos()

    def inputName(self, text):
        self.name = text
        print "input name is " + str(self.name)

    def inputPassword(self, text):
        self.password = text
        print "input password " + str(self.password)

    def clickOkBtn(self):
        sender = self.sender()
        print unicode(sender.text()) + " be clicked"
        info = u"姓名:" + str(self.name) + u" 密码:" + str(self.password)
        reply = QtGui.QMessageBox.question(self, u"提示", info, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
        if reply == QtGui.QMessageBox.Yes:
            print "right!"
        else:
            self.nameInputEdit.setText("")
            self.passwordInputEdit.setText("")

    def clickCancleBtn(self):
        sender = self.sender()
        print unicode(sender.text()) + " be clicked"
        self.close()

    def setCenterPos(self):
        screen = QtGui.QDesktopWidget().screenGeometry()
        selfSize = self.size()
        self.move((screen.width() - selfSize.width())/2, (screen.height() - selfSize.height())/2)


def main():
    app = QtGui.QApplication(sys.argv)
    lb = LoginBox()
    lb.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()

posted @ 2014-09-03 21:12  无形的风  阅读(221)  评论(0编辑  收藏  举报