找回密码
 立即注册
收起左侧
楼主: yafeilinux

第24篇 数据库(四)SQL查询模型QSqlQueryModel

46
回复
48238
查看
[复制链接]
累计签到:580 天
连续签到:3 天
2016-8-30 19:27:40 显示全部楼层
hebbely 发表于 2016-8-30 19:23
我的也是没有数据库文件生产呢,在哪里可以下载源码?

呃(⊙o⊙)…,看错了,我的有数据库文件生成的,我刚刚看错目录了
回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
2016-11-29 11:12:21 显示全部楼层
>>向项目中添加新的C++类,类名为MySqlQueryModel,基类为QSqlQueryModel,类型信息选择“继承自QObject”。

我用的最新版的Qt 5.7, 这个地方老是有问题。
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2016-11-30 11:10:51 显示全部楼层
poper 发表于 2016-11-29 11:12
>>向项目中添加新的C++类,类名为MySqlQueryModel,基类为QSqlQueryModel,类型信息选择“继承自QObject” ...

因为版本原因,现在这个已经不太一样,新建后,需要自己设置一些内容。
回复 支持 反对

使用道具 举报

累计签到:5 天
连续签到:1 天
2016-11-30 12:08:53 显示全部楼层
搞定了,new的时候构造函数需要带参数,设定为null或者this就OK。
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2016-12-26 16:39:08 显示全部楼层
本帖最后由 默默地追逐 于 2016-12-26 16:40 编辑

请问没安装MYSQL驱动可以执行这一篇的内容吗?
回复 支持 反对

使用道具 举报

尚未签到

2016-12-26 21:18:48 显示全部楼层
//更改数据显示样式
QVariant MySqlQueryModel::data(const QModelIndex &index, int role) const
{
QVariant value = QSqlQueryModel::data(index, role);

//第一个属性的字体颜色为红色
    if (role == Qt::TextColorRole && index.column() == 0)
       return qVariantFromValue(QColor(Qt::red));   
return value;
}

你好,在这步中,如果我想根据内容比如第一列为1。把这行的颜色标识成红色,怎么来实现?
if( role == Qt::TextColorRole && "1" == index.data() )
  return qVariantFromValue(QColor(Qt::red));   

这样没成功
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2016-12-26 21:26:55 显示全部楼层
默默地追逐 发表于 2016-12-26 16:39
请问没安装MYSQL驱动可以执行这一篇的内容吗?

如果你不使用mysql,就没有关系。
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2016-12-26 21:29:11 显示全部楼层
mastermouse 发表于 2016-12-26 21:18
//更改数据显示样式
QVariant MySqlQueryModel::data(const QModelIndex &index, int role) const
{

输出下 index.data() 返回是什么。
回复 支持 反对

使用道具 举报

尚未签到

2016-12-27 13:46:59 显示全部楼层

    QVariant value = QSqlQueryModel::data(index,role);

    if (role == Qt::BackgroundRole && index.data(Qt:isplayRole).toString() =="sg3f03")
    {
        qDebug()<<index.row()<<index.column();
        return qVariantFromValue(QColor(Qt::red)); //第一个属性的字体颜色为红色
    }
    return value;

知道了,通过index.data(role)获取内容。 实现的效果如图。
但我想实现的效果是把整行都标记成red。而不是单这个Item.应该如何来实现叱 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

尚未签到

2016-12-27 13:51:03 显示全部楼层
想达到的效果是,如果index.Column()==1且index.data(QtisplayRole).toString()=="sg3f03"
把整行的背景色调整成红色.
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2017-1-4 11:12:39 显示全部楼层
学习到了,最近在做关于加工参数查询的数据库,还要再学习下数据库多限定参数时的查询算法
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2017-1-8 10:50:18 显示全部楼层
我用的是mySQL的数据库,打开没有问题,就是显示不出来,在cmd里查看了,已经写入了table了,就是不显示,是不是语句  model->setQuery("select *from student");  没有成功
图片如下;file:///C:/Users/Administrator/Desktop/%E6%8D%95%E8%8E%B7.PNG
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2017-1-8 10:50:54 显示全部楼层
C:/Users/Administrator/Desktop/%E6%8D%95%E8%8E%B7.PNG
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2017-1-8 10:53:08 显示全部楼层
显示图片如下。。。。。。。。。。。。。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2017-1-8 11:09:40 显示全部楼层
13629729552 发表于 2017-1-8 10:53
显示图片如下。。。。。。。。。。。。。。。

下载页面有个《Qt Creator快速入门》(第2版)实验讲义(8个实验),里面有mysql的例子,你看看。
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2017-1-8 11:28:40 显示全部楼层
yafeilinux 发表于 2017-1-8 11:09
下载页面有个《Qt Creator快速入门》(第2版)实验讲义(8个实验),里面有mysql的例子,你看看。 ...

刚才在cmd里又看了一遍,发现只创建了表,表里没有东西,原来是语句query.exec("insert into这里表名写错,导致没有写入,怪不得没显示呢。。。原来qt里数据库操作与数据库种类貌似没关系
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2017-1-8 11:56:22 显示全部楼层
13629729552 发表于 2017-1-8 11:28
刚才在cmd里又看了一遍,发现只创建了表,表里没有东西,原来是语句query.exec("insert into这里表名写错 ...

嗯。
回复 支持 反对

使用道具 举报

累计签到:45 天
连续签到:1 天
2017-1-18 11:23:47 显示全部楼层
    为什么我稍微一改表就显示不出来了
    query.exec("create table student(id int primary key,name varchar(20),time varchar(20))");
    query.exec("insert into student values(1,'xiaogang','一月三十')");
    query.exec("insert into student values(2,'xiaoming','一月三十')");
    query.exec("insert into student values(3,'xiaohong','一月三十')");
    query.exec("create table menu(name vchar primary key,price int )");
只是加了一个varchar(20)而已
回复 支持 反对

使用道具 举报

累计签到:1568 天
连续签到:1 天
2017-1-19 10:27:39 显示全部楼层
gaoxin0531 发表于 2017-1-18 11:23
为什么我稍微一改表就显示不出来了
    query.exec("create table student(id int primary key,name va ...

你把不同的几点分别试一下,就知道原因了。
回复 支持 反对

使用道具 举报

累计签到:30 天
连续签到:1 天
2017-2-4 22:51:26 显示全部楼层
老师为什么没有数据库文件产生

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了