QT之数据库 和 GraphicsView使用
2015-05-28 22:53
351 查看
1、QT创建Table表格控件。 QSqlTableModel *model; model = new QSqlTableModel(this); model->setTable(tableName);//绑定数据库的表名 //model->setFilter(filter);//设置where之类 model->select();//执行select操作 //设置表格的头部字段 model->setHeaderData(0, Qt::Horizontal, tr("ID")); model->setHeaderData(1, Qt::Horizontal, tr("First name")); model->setHeaderData(2, Qt::Horizontal, tr("Last name")); //关联表格 与 视图显示 QTableView *view = new QTableView; view->setModel(model);
2、提示警告信息 QMessageBox::warning(this, tr("Cached Table"), tr("The database reported an error: %1") .arg(model->lastError().text()));
3、创建QGraphicView的基本使用流程 QGraphicsView view; //定义视图 QGraphicsScene *scene; ////创建场景舞台 scene = new QGraphicsScene(this);//参数为view scene->setSceneRect(0, 0, 465, 615); setScene(scene);//绑定View与Scene的关系 //向场景内添加内容 QGraphicsPixmapItem *logo = scene->addPixmap(QPixmap(":/logo.png")); logo->setPos(30, 515);
4、获取视图的指定位置的Item对象 void View::mouseReleaseEvent(QMouseEvent *event) { if (QGraphicsItem *item = itemAt(event->pos())) { //对item进行判断和处理 } QGraphicsView::mouseReleaseEvent(event); }
5、遍历场景内的所有Item QList<QGraphicsItem *> items = scene->items(); while(!items.empty()) { QGraphicsItem *item = items.takeFirst(); //item操作 }
6、QT数据库的创建、连接、写入操作 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabaseName(":memory:"); if (!db.open()) { QMessageBox::critical(0, tr("Cannot open database"), tr("Unable to establish a database connection.\n" "This example needs SQLite support. Please read " "the Qt SQL driver documentation for information how " "to build it."), QMessageBox::Cancel); return; } QSqlQuery query; query.exec("create table person (id int primary key, " "name varchar(20), address varchar(200), typeid int)"); query.exec("insert into person values(1, 'Alice', " "'<qt>123 Main Street<br/>Market Town</qt>', 101)"); query.exec("insert into person values(2, 'Bob', " "'<qt>PO Box 32<br/>Mail Handling Service" "<br/>Service City</qt>', 102)"); query.exec("insert into person values(3, 'Carol', " "'<qt>The Lighthouse<br/>Remote Island</qt>', 103)"); query.exec("insert into person values(4, 'Donald', " "'<qt>47338 Park Avenue<br/>Big City</qt>', 101)"); query.exec("insert into person values(5, 'Emma', " "'<qt>Research Station<br/>Base Camp<br/>" "Big Mountain</qt>', 103)"); //! [Set up the main table] //! [Set up the address type table] query.exec("create table addresstype (id int, description varchar(20))"); query.exec("insert into addresstype values(101, 'Home')"); query.exec("insert into addresstype values(102, 'Work')"); query.exec("insert into addresstype values(103, 'Other')");
相关文章推荐
- QT5串口通信——基础篇
- Qt中文显示
- QT共享内存使用
- Qt信号与槽工作机制--译文
- QT编译错误
- QT 下载文件
- Qt信号与槽机制源码分析
- Qt和Cocoa混合编程
- Ubuntu+Qtcreator2.4.1+opencv2.4.9+安装
- genQtProFile.py
- Qt静态库的下载和安装配置
- Qt编程之通过鼠标滚轮事件缩放QGraphicsView里面的Item
- QTP破解方法
- Ubuntu下Qt编译报错:“make: g++:命令未找到”
- Qt界面显示图片,Qt与opencv的联合运用
- QT实现截屏功能
- QT 中 事件处理转移
- Qt画图QCustomPlot之安装篇
- 关于在Qt里编译生成静态库文件
- opencv与Qt的结合使用