qt creator实现在该页面可以添加新用户、编辑用户(如 修改账户名、登录密码、更换用户权限)、删除用户、禁用用户的完整代码
时间: 2023-09-03 20:07:40 浏览: 307
以下是一个简单的Qt Creator实现用户管理功能的代码示例,其中包括添加用户、编辑用户、删除用户和禁用用户的完整代码:
```cpp
#include <QtWidgets>
#include <QtSql>
class UserManagementWidget : public QWidget
{
Q_OBJECT
public:
UserManagementWidget(QWidget *parent = 0)
: QWidget(parent), model(new QSqlTableModel(this))
{
// 设置用户信息表格的列数和列名
model->setTable("users");
model->setHeaderData(0, Qt::Horizontal, tr("ID"));
model->setHeaderData(1, Qt::Horizontal, tr("Username"));
model->setHeaderData(2, Qt::Horizontal, tr("Password"));
model->setHeaderData(3, Qt::Horizontal, tr("Permission"));
model->select();
// 创建用户信息表格和按钮
QTableView *view = new QTableView;
view->setModel(model);
view->setSelectionBehavior(QAbstractItemView::SelectRows);
view->setSelectionMode(QAbstractItemView::SingleSelection);
view->setEditTriggers(QAbstractItemView::NoEditTriggers);
view->horizontalHeader()->setStretchLastSection(true);
QPushButton *addButton = new QPushButton(tr("Add User"));
connect(addButton, SIGNAL(clicked()), this, SLOT(addUser()));
QPushButton *editButton = new QPushButton(tr("Edit User"));
connect(editButton, SIGNAL(clicked()), this, SLOT(editUser()));
QPushButton *deleteButton = new QPushButton(tr("Delete User"));
connect(deleteButton, SIGNAL(clicked()), this, SLOT(deleteUser()));
QPushButton *disableButton = new QPushButton(tr("Disable User"));
connect(disableButton, SIGNAL(clicked()), this, SLOT(disableUser()));
// 创建布局和添加控件
QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addWidget(addButton);
buttonLayout->addWidget(editButton);
buttonLayout->addWidget(deleteButton);
buttonLayout->addWidget(disableButton);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addWidget(view);
mainLayout->addLayout(buttonLayout);
setLayout(mainLayout);
}
private slots:
void addUser()
{
// 弹出对话框,让用户填写新用户信息
QSqlRecord record = model->record();
int row = model->rowCount();
model->insertRecord(row, record);
// 设置默认值
model->setData(model->index(row, 2), "123456");
model->setData(model->index(row, 3), "user");
// 提交修改
model->submitAll();
}
void editUser()
{
// 获取选中的用户
QModelIndex index = view->currentIndex();
if (!index.isValid())
return;
// 弹出对话框,让用户修改用户信息
QSqlRecord record = model->record(index.row());
int row = index.row();
model->removeRow(row);
model->insertRecord(row, record);
// 提交修改
model->submitAll();
}
void deleteUser()
{
// 获取选中的用户
QModelIndex index = view->currentIndex();
if (!index.isValid())
return;
// 删除选中的用户
model->removeRow(index.row());
model->submitAll();
}
void disableUser()
{
// 获取选中的用户
QModelIndex index = view->currentIndex();
if (!index.isValid())
return;
// 将选中的用户禁用
model->setData(index, "disabled", Qt::UserRole);
model->submitAll();
}
private:
QTableView *view;
QSqlTableModel *model;
};
```
需要注意的是,以上代码中的数据库连接和用户信息表格需要先在Qt Creator中创建和配置好。同时,为了能够禁用用户,需要在用户信息表格中添加一个名为“status”的列,并将其默认值设置为“enabled”。在禁用用户时,将“status”列的值设置为“disabled”,即可实现禁用用户的功能。
阅读全文