一、UI界面设计(QListWidget)
首先布局好UI界面
布局好后,我们需要在ListWidget上显示很多内容,但是一个字符串列表不足以完成这个需求,或者能够完成效果也不是很好,所以需要创建一个新的UI页面自定义一个条目布局。
二、sqlite数据生成
//1、根据数据库类型来连接数据
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("compary.db");
//2、打开数据库
if(!db.open())
{
qDebug()<<"open error"<<db.lastError();
}
//3、根据需求,创建数据库所需要表
QSqlQuery query;
/**
* 员工表:staff
* 字段名有 id name age address salary
**/
QString sqlCreateTable = QString ("create table staff(id integer primary key autoincrement,"
"name varchar(20),"
"age int,"
"address varchar(50),"
"salary int);");
if(!query.exec(sqlCreateTable))
{
qDebug() << "create table" << db.lastError();
}
QString sqlInsert = QString("insert into staff(name,age,address,salary)"
"values('张三',20,'广州市天河区',12000);");
if(!query.exec(sqlInsert))
{
qDebug() << "Error insert into data" << db.lastError();
}
运行程序,在SQLite中查看,数据已经写入数据库表中
但是每次都这样通过SQLite这种软件来查看数据库表,显然是不方便的,所以需要直接显示到Qt页面上。
三、sqlite数据跟UI联动
使用查询按键,查询数据库表内容,逐行显示到Qt控件中
void SQLite_ListWidget::on_pushButton_Query_clicked()
{
ui->listWidget->clear();//在查询数据之前,清空列表上的内容
QSqlQuery query;
QString sqlQuery = QString("select * from staff;");//1、查询数据
if(!query.exec(sqlQuery))
{
qDebug() << "Error query into data" << db.lastError();
}
//2、遍历数据库记录
while(query.next())
{
int id = query.value("id").toInt();
QString name = query.value("name").toString();
int age = query.value("age").toInt();
QString address = query.value("address").toString();
int salary = query.value("salary").toInt();
qDebug() << "id = " << id << "name" << name << "age = " << age <<
"address = " << address << "salary = " << salary;
//3、每遍历一条记录,就要更新到UI控件
//3.1、创建一个列表条目
itemform* staffitem = new itemform;
staffitem->setStaffInfo(id,name,age,address,salary);
QListWidgetItem* item = new QListWidgetItem;
item->setSizeHint(QSize(412,27));
ui->listWidget->addItem(item);
ui->listWidget->setItemWidget(item,staffitem);
}
}
其中
staffitem->setStaffInfo(id,name,age,address,salary);
是设置数据到item中,需要在itemform.cpp中定义该函数
void itemform::setStaffInfo(int id, QString name, int age, QString addr, int salary)
{
ui->label_id->setText(QString::number(id));
ui->label_name->setText(name);
ui->label_age->setText(QString::number(age));
ui->label_addr->setText(addr);
ui->label_salary->setText(QString::number(salary));
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
数据库
+关注
关注
7文章
3799浏览量
64396 -
SQlite
+关注
关注
0文章
78浏览量
15945 -
ui界面
+关注
关注
0文章
11浏览量
1574
发布评论请先 登录
相关推荐
数据库系统是什么?数据库系统概念之数据库设计资料免费下载
什么是概念结构设计1.将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计2.概念结构是各种数据模型的共同基础,它比
发表于 09-07 14:34
•1次下载
如何使用PowerDesigner进行数据库静态结构设计?详细资料概述
把用户需求抽象为概念模型即为概念结构设计。
概念模型除了要求能反映客观世界并且易于理解外,还要求其易于向数据模型(如关系模型)转化。
概念模型独立于具体的数据库系统,是整个数据库设
发表于 09-13 17:05
•0次下载
数据库设计的七大知识点总结详细资料免费下载
本文档的主要内容详细介绍的是数据库设计的七大知识点总结包括了:1 数据库设计概述2 需求分析3 概念结构设计4 逻辑结构设计5
发表于 10-19 10:41
•0次下载
数据库学习入门资料之数据库的概念结构详细资料概述
什么是概念结构设计
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计
概念结构是各种数据模型的共同基础,它比
发表于 10-25 16:29
•0次下载
数据库概念结构是如何设计的概念结构设计资料概述
本文档的主要内容详细介绍的是数据库概念结构是如何设计的概念结构设计资料概述主要内容包括了:1 概念结构2 概念结构设计的方法与步骤
发表于 10-26 11:49
•22次下载
数据库的设计概念总结
本文档的主要内容详细介绍的是数据库的设计概念总结主要内容包括了:1.数据库设计概述,2.需求分析,3.概念结构设计,4.逻辑结构设计,5.
发表于 01-09 17:29
•13次下载
数据库设计开发案例教程之数据库设计的资料介绍
本文档的主要内容详细介绍的是数据库设计开发案例教程之数据库设计的资料介绍主要内容包括了:1 数据库设计概述,2 需求分析,3 概念结构设计,
发表于 01-11 11:20
•17次下载
Qt学习笔记之数据库结构设计1
数据库也是应用程序的重要部分,一个完整的应用程序几乎都包含数据库。
当前主流的数据库有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。
Sqlite是一款轻型的
Qt学习笔记之数据库结构设计2
数据库也是应用程序的重要部分,一个完整的应用程序几乎都包含数据库。
当前主流的数据库有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。
Sqlite是一款轻型的
评论