建立网站 用英语,智慧软文发稿平台,宁波建设银行,qq企业邮箱格式重点#xff1a;
1.SQLite创建数据库内容方法
链接#xff1a;SQLite Expert Personal的简单使用-CSDN博客
2.和数据库进行链接方法
QSqlDatabase DB; //数据库连接bool MainWindow::openDatabase(QString aFile)
{DBQSqlDatabase::addDatabase(QSQLITE); /…重点
1.SQLite创建数据库内容方法
链接SQLite Expert Personal的简单使用-CSDN博客
2.和数据库进行链接方法
QSqlDatabase DB; //数据库连接bool MainWindow::openDatabase(QString aFile)
{DBQSqlDatabase::addDatabase(QSQLITE); //添加 SQLITE数据库驱动DB.setDatabaseName(aFile); //设置数据库名称if (!DB.open()) //打开数据库失败return false;else{openTable(); //打开数据表return true;}
} 3.QTableView和QSqltableModedl、QItemSelectionModel关系 /打开数据表
void MainWindow::openTable()
{//1. 创建数据模型打开数据表tabModelnew QSqlTableModel(this,DB); //数据模型tabModel-setTable(employee); //设置数据表tabModel-setEditStrategy(QSqlTableModel::OnManualSubmit); //数据保存方式OnManualSubmit , OnRowChangetabModel-setSort(tabModel-fieldIndex(empNo),Qt::AscendingOrder); //排序if (!(tabModel-select())) //查询数据失败{QMessageBox::critical(this, 错误信息,打开数据表错误,错误信息:\ntabModel-lastError().text());return;}showRecordCount(); //显示记录条数//2. 设置字段显示标题tabModel-setHeaderData(tabModel-fieldIndex(empNo), Qt::Horizontal, 工号);tabModel-setHeaderData(tabModel-fieldIndex(Name), Qt::Horizontal, 姓名);tabModel-setHeaderData(tabModel-fieldIndex(Gender), Qt::Horizontal, 性别);tabModel-setHeaderData(tabModel-fieldIndex(Birthday), Qt::Horizontal, 出生日期);tabModel-setHeaderData(tabModel-fieldIndex(Province), Qt::Horizontal, 省份);tabModel-setHeaderData(tabModel-fieldIndex(Department), Qt::Horizontal, 部门);tabModel-setHeaderData(tabModel-fieldIndex(Salary), Qt::Horizontal, 工资);//这两个字段不在tableView中显示tabModel-setHeaderData(tabModel-fieldIndex(Memo),Qt::Horizontal,备注);tabModel-setHeaderData(tabModel-fieldIndex(Photo),Qt::Horizontal,照片);//3. 创建选择模型selModelnew QItemSelectionModel(tabModel,this); //关联选择模型//当前行或列变化时发射currentChanged信号connect(selModel,QItemSelectionModel::currentChanged,this,MainWindow::do_currentChanged);//当前行变化时发射currentRowChanged()信号connect(selModel,QItemSelectionModel::currentRowChanged,this,MainWindow::do_currentRowChanged);//4. Model/View结构ui-tableView-setModel(tabModel); //设置数据模型ui-tableView-setSelectionModel(selModel); //设置选择模型ui-tableView-setColumnHidden(tabModel-fieldIndex(Memo),true); //隐藏列ui-tableView-setColumnHidden(tabModel-fieldIndex(Photo),true); //隐藏列//5. 为tableView中的“性别”和“部门”两个字段设置自定义代理组件QStringList strList;strList男女;bool isEditablefalse;delegateSex.setItems(strList,isEditable);ui-tableView-setItemDelegateForColumn(tabModel-fieldIndex(Gender),delegateSex); //设置代理组件strList.clear();strList销售部技术部生产部行政部;isEditabletrue;delegateDepart.setItems(strList,isEditable);ui-tableView-setItemDelegateForColumn(tabModel-fieldIndex(Department),delegateDepart); //设置代理组件//6. 创建界面组件与数据模型的字段之间的数据映射dataMapper new QDataWidgetMapper(this);dataMapper-setModel(tabModel); //设置数据模型dataMapper-setSubmitPolicy(QDataWidgetMapper::AutoSubmit); //数据更新方式//界面组件与数据模型的具体字段之间的联系dataMapper-addMapping(ui-dbSpinEmpNo,tabModel-fieldIndex(empNo));dataMapper-addMapping(ui-dbEditName,tabModel-fieldIndex(Name));dataMapper-addMapping(ui-dbComboSex,tabModel-fieldIndex(Gender));dataMapper-addMapping(ui-dbEditBirth,tabModel-fieldIndex(Birthday));dataMapper-addMapping(ui-dbComboProvince,tabModel-fieldIndex(Province));dataMapper-addMapping(ui-dbComboDep,tabModel-fieldIndex(Department));dataMapper-addMapping(ui-dbSpinSalary,tabModel-fieldIndex(Salary));dataMapper-addMapping(ui-dbEditMemo,tabModel-fieldIndex(Memo));dataMapper-toFirst(); //移动到首记录//7. 获取字段名称列表填充groupBoxSortgetFieldNames();//8.更新actions和界面组件的使能状态ui-actOpenDB-setEnabled(false); //不能再打开数据库ui-actRecAppend-setEnabled(true);ui-actRecInsert-setEnabled(true);ui-actRecDelete-setEnabled(true);ui-actScan-setEnabled(true);ui-groupBoxSort-setEnabled(true); //排序分租框ui-groupBoxFilter-setEnabled(true); //数据过滤分组框
}