果果、 发表于 2017-4-21 11:08:45

Python GUI

import sys
from PyQt4 import QtGui, QtCore


class Example(QtGui.QWidget):
   
    def __init__(self):
      super(Example, self).__init__()
      self.initUI()
      
    def initUI(self):
      self.settings = QtCore.QSettings(sys.path + "/config.ini", QtCore.QSettings.IniFormat)
      
      self.userEdit = QtGui.QLineEdit(self.settings.value("account/user").toString())
      self.pwd1Edit = QtGui.QLineEdit()
      self.pwd2Edit = QtGui.QLineEdit()
      self.dirEdit = QtGui.QLineEdit(self.settings.value("account/dir").toString())
      self.pwd1Edit.setEchoMode(QtGui.QLineEdit.Password)
      self.pwd2Edit.setEchoMode(QtGui.QLineEdit.Password)
      saveBtn = QtGui.QPushButton("Save")
      cancelBtn = QtGui.QPushButton("Cancel")
      browserBtn = QtGui.QPushButton("Browser")
      
      grid = QtGui.QGridLayout()
      grid.setSpacing(10)
      grid.addWidget(QtGui.QLabel("User"), 1, 0)
      grid.addWidget(self.userEdit, 1, 1)
      grid.addWidget(QtGui.QLabel("pwd1"), 2, 0)
      grid.addWidget(self.pwd1Edit, 2, 1)
      grid.addWidget(QtGui.QLabel("pwd2"), 3, 0)
      grid.addWidget(self.pwd2Edit, 3, 1)
      grid.addWidget(QtGui.QLabel("dir"), 4, 0)
      grid.addWidget(self.dirEdit, 4, 1)
      grid.addWidget(browserBtn, 4, 2)
      
      saveBtn.clicked.connect(self.save)
      cancelBtn.clicked.connect(self.cancel)
      browserBtn.clicked.connect(self.browser)
      
      hbox = QtGui.QHBoxLayout()
      hbox.addWidget(saveBtn)
      hbox.addWidget(cancelBtn)   
      
      vbox = QtGui.QVBoxLayout()
      vbox.addLayout(grid)
      vbox.addLayout(hbox)
      
      self.setLayout(vbox)
      
      self.setGeometry(300, 300, 350, 300)
      self.setWindowTitle("Account")
      self.setWindowIcon(QtGui.QIcon("app.ico"))               
      self.show()
      
    def save(self):
      user = self.userEdit.text()
      pwd1 = self.pwd1Edit.text()
      pwd2 = self.pwd2Edit.text()
      dir = self.dirEdit.text()
      if pwd1 != pwd2:
             QtGui.QMessageBox.information(self, "Account", "Passwords are not the same")
             return
      
      self.settings.setValue("account/user", user)
      self.settings.setValue("account/password", pwd1)
      self.settings.setValue("account/dir", dir)
      
    def cancel(self):
      print "cancel"
      
    def browser(self):
      print "browser"
      # | QtGui.QFileDialog.DontResolveSymlinks
      dir = QtGui.QFileDialog.getExistingDirectory(self, "Open Directory", "", QtGui.QFileDialog.ShowDirsOnly)
      self.dirEdit.setText(dir)
      
      
def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == "__main__":
    main()
页: [1]
查看完整版本: Python GUI