一、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文章
3765瀏覽量
64276 -
SQlite
+關注
關注
0文章
78瀏覽量
15909 -
ui界面
+關注
關注
0文章
11瀏覽量
1569
發布評論請先 登錄
相關推薦
數據庫系統是什么?數據庫系統概念之數據庫設計資料免費下載
什么是概念結構設計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是一款輕型的
評論