Example #1
0
 def __init__(self,parent=None):
     super(QDialog,self).__init__(parent)
     self.ui = Ui_Dialog()
     self.ui.setupUi(self)
     self.ui.groupBox.setHidden(True)
     self.ui.comboBox_usertype.addItem(u'管理员')
     self.ui.comboBox_usertype.addItem(u'游客')
     self.ui.pushButton_add.clicked.connect(self.slotAdd)
     self.ui.pushButton_modify.clicked.connect(self.slotModify)
     self.ui.pushButton_del.clicked.connect(self.slotDel)
     self.ui.pushButton_cancel.clicked.connect(self.slotCancel)
     self.ui.pushButton_ok.clicked.connect(self.slotOk)
     self.__initTableView()
     self.__update_userlist()
Example #2
0
class DlgSysUserAdmin(QDialog):
    def __init__(self,parent=None):
        super(QDialog,self).__init__(parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)
        self.ui.groupBox.setHidden(True)
        self.ui.comboBox_usertype.addItem(u'管理员')
        self.ui.comboBox_usertype.addItem(u'游客')
        self.ui.pushButton_add.clicked.connect(self.slotAdd)
        self.ui.pushButton_modify.clicked.connect(self.slotModify)
        self.ui.pushButton_del.clicked.connect(self.slotDel)
        self.ui.pushButton_cancel.clicked.connect(self.slotCancel)
        self.ui.pushButton_ok.clicked.connect(self.slotOk)
        self.__initTableView()
        self.__update_userlist()
    #初始化表格控件的样式
    def __initTableView(self):
        self.ui.tableView.setEditTriggers(QTableWidget.NoEditTriggers)
        self.ui.tableView.setSelectionBehavior(QTableWidget.SelectRows)
        self.ui.tableView.setSelectionMode(QTableWidget.SingleSelection)
        self.ui.tableView.setAlternatingRowColors(True)
    #更新用户列表
    def __update_userlist(self):
        userlist = dbSysUser().get_all_users()
        if userlist == None: return
        model = QStandardItemModel(len(userlist), 3, self)
        for i in range(len(userlist)):
            userinfo = userlist[i]
            model.setItem(i, 0, QStandardItem(u'%d'%userinfo.id))
            model.setItem(i, 1, QStandardItem(u'%s'%userinfo.username))
            model.setItem(i, 2, QStandardItem(u'%s'%userinfo.usertype))
        strHeaders = QStringList()
        strHeaders.append(u'ID')
        strHeaders.append(u'用户名')
        strHeaders.append(u'用户类型')

        model.setHorizontalHeaderLabels(strHeaders)
        self.ui.tableView.setModel(model)
        self.ui.tableView.setColumnWidth(2, 180)
        for i in range(len(userlist)):
            self.ui.tableView.setRowHeight(i, 20)
    #点击'添加用户'按钮
    def slotAdd(self):
        self.ui.groupBox.show()
        self.ui.pushButton_ok.setText(u'添加')
        self.ui.lineEdit_username.setText(u'')
        self.ui.lineEdit_password.setText(u'')
    #点击'修改用户'按钮
    def slotModify(self):
        cur_index = self.ui.tableView.currentIndex()
        if cur_index is None: return
        if cur_index.row() < 0 : return
        model = self.ui.tableView.model()
        name_data = u'%s'%model.index(cur_index.row(), 1).data().toString()
        type_data = u'%s'%model.index(cur_index.row(), 2).data().toString()
        self.__oldUserInfo = SysUser()
        self.__oldUserInfo.username = name_data
        self.__oldUserInfo.usertype = type_data
        self.ui.tableView.setEnabled(False)
        self.ui.pushButton_add.setEnabled(False)
        self.ui.pushButton_modify.setEnabled(False)
        self.ui.pushButton_del.setEnabled(False)
        self.ui.groupBox.show()
        self.ui.lineEdit_username.setText(self.__oldUserInfo.username)
        self.ui.comboBox_usertype.setEditText(self.__oldUserInfo.usertype)
        self.ui.pushButton_ok.setText(u'修改')

    #点击'删除用户'按钮
    def slotDel(self):
        cur_index = self.ui.tableView.currentIndex()
        if cur_index is None: return
        if cur_index.row() < 0: return
        model = self.ui.tableView.model()
        name_data = model.index(cur_index.row(), 1).data()
        print name_data
        data = name_data.toString()
        if not dbSysUser().deleteUser(u'%s'%data):
            QMessageBox.critical(self, u'error', u'删除用户失败')
        else:
            self.__update_userlist()


    #按下确定键修改或添加一个用户
    def slotOk(self):
        user = SysUser()
        user.username = u'%s'%self.ui.lineEdit_username.text()
        user.password = u'%s'%self.ui.lineEdit_password.text()
        user.usertype = u'%s'%self.ui.comboBox_usertype.currentText()
        if  len(user.username)<1:
            self.ui.lineEdit_username.setFocus()
            return
        if len(user.password)<4:
            QMessageBox.critical(self, u'error', u'密码不能小于4位')
            self.ui.lineEdit_password.setFocus()
            return

        if self.ui.pushButton_ok.text()==u'添加':
            if dbSysUser().addUser(user):
                self.ui.groupBox.hide()
                self.__update_userlist()
            else:
                QMessageBox.critical(self,u'error',u'Add failed')
        else:

            if dbSysUser().modifyUser(self.__oldUserInfo.username, user):
                self.ui.groupBox.hide()
                self.__update_userlist()
            else:
                QMessageBox.critical(self,u'error',u'Add failed')
        self.ui.tableView.setEnabled(True)
        self.ui.pushButton_add.setEnabled(True)
        self.ui.pushButton_modify.setEnabled(True)
        self.ui.pushButton_del.setEnabled(True)

    #取消添加/修改用户信息
    def slotCancel(self):
        self.ui.groupBox.hide()
        self.ui.tableView.setEnabled(True)
        self.ui.pushButton_add.setEnabled(True)
        self.ui.pushButton_modify.setEnabled(True)
        self.ui.pushButton_del.setEnabled(True)