#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()