新浪微博
腾讯微博
会员列表
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
帮助
下拉
用户名
电子邮箱
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
首页
论坛
Qt下载
作品展
群组
个人中心
捐赠、管理与开发
邮件订阅
帖子
文章
日志
用户
版块
群组
帖子
搜索
QTCN开发网
>
Qt基础编程
>
QDataWidgetMapper如何实现数据映射
发帖
回复
返回列表
新帖
9301
阅读
13
回复
QDataWidgetMapper如何实现数据映射
[复制链接]
上一主题
下一主题
离线
刚来的初学者
UID:118826
注册时间
2011-06-30
最后登录
2012-05-16
在线时间
15小时
发帖
14
搜Ta的帖子
精华
0
金钱
145
威望
24
贡献值
0
好评度
14
访问TA的空间
加好友
用道具
新手上路
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
加关注
发消息
只看楼主
倒序阅读
楼主
发表于: 2011-12-04
图片:捕获2121.PNG
如何用QDataWidgetMapper实现选中视图中一行,在下面部件中
显示
选中行的各列,这个一直没实现,整了几天不知道
问题
出在哪?人都快崩溃了!
这是代码:
复制代码
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect2();//连接数据库
mapper=new QDataWidgetMapper(this);
connect(ui->iotableView->selectionModel(), SIGNAL(currentRowChanged(QModelIndex)),
mapper, SLOT(setCurrentModelIndex(QModelIndex)));//想实现选中一行,该行各列显示在下面部件,但这条语句好像没执行
//收支界面-收入信息表初始化
QString a3=QString::number(14);
QString sql3="User=";
sql3=sql3+a3;
qDebug()<<sql3;
model2 = new QSqlRelationalTableModel(this);
model2->setTable("Income");
model2->setEditStrategy(QSqlTableModel::OnFieldChange);
// model2->setEditStrategy(QSqlTableModel::OnManualSubmit);//所有改变将被放到缓存,直到调用submitAll()或revertAll()
model2->setFilter(sql3);
model2->setRelation(4,QSqlRelation("Intype","ID","InName"));
model2->setRelation(5,QSqlRelation("BankAccount","AID","AccountName"));
model2->select(); //选取整个表的所有行
model2->removeColumn(0); //不显示ID属性列,如果这时添加记录,则该属性的值添加不上
model2->setHeaderData(0,Qt::Horizontal,QObject::tr("用户"));
model2->setHeaderData(1,Qt::Horizontal,QObject::tr("时间"));
model2->setHeaderData(2,Qt::Horizontal,QObject::tr("金额"));
model2->setHeaderData(3,Qt::Horizontal,QObject::tr("类型"));
model2->setHeaderData(4,Qt::Horizontal,QObject::tr("支付方式"));
model2->setHeaderData(5,Qt::Horizontal,QObject::tr("备注"));
ui->iotableView->setModel(model2);
ui->iotableView->hideColumn(0);//隐藏用户列
QSqlTableModel *relationModel2=model2->relationModel(4),*relationModel=model2->relationModel(3);
ui->accountcomboBox->setModel(relationModel2);
ui->accountcomboBox->setModelColumn(relationModel2->fieldIndex("AccountName"));
ui->typecomboBox->setModel(relationModel);
ui->typecomboBox->setModelColumn(relationModel->fieldIndex("InName"));
mapper = new QDataWidgetMapper(this);
mapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);
mapper->setModel(model2);
mapper->addMapping(ui->iradioButton, 0);
mapper->addMapping(ui->dateEdit, 1);
mapper->addMapping(ui->account, 2);
mapper->addMapping(ui->typecomboBox, 3);
mapper->addMapping(ui->accountcomboBox, 4);
mapper->addMapping(ui->notelineEdit, 5);
mapper->toNext();
}有哪位好心人帮帮忙,在线等,谢谢
共
条评分
回复
举报
分享到
淘江湖
新浪
QQ微博
QQ空间
开心
人人
豆瓣
网易微博
百度
鲜果
白社会
飞信
离线
alexltr
UID:107032
注册时间
2010-11-01
最后登录
2025-05-25
在线时间
1693小时
发帖
537
搜Ta的帖子
精华
0
金钱
8837
威望
558
贡献值
0
好评度
584
访问TA的空间
加好友
用道具
论坛版主
加关注
发消息
只看该作者
1楼
发表于: 2011-12-04
connect(ui->iotableView->selectionModel(), SIGNAL(
currentRowChanged(QModelIndex)),
mapper, SLOT(setCurrentModelIndex(QModelIndex)));//
这句好像不对喔!!
void currentRowChanged ( const QModelIndex & current, const QModelIndex & previous )
共
条评分
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!
---- 一个一直在入门的编程学习者
回复
举报
离线
alexltr
UID:107032
注册时间
2010-11-01
最后登录
2025-05-25
在线时间
1693小时
发帖
537
搜Ta的帖子
精华
0
金钱
8837
威望
558
贡献值
0
好评度
584
访问TA的空间
加好友
用道具
论坛版主
加关注
发消息
只看该作者
2楼
发表于: 2011-12-04
你的代码结构太乱了。
mapper都new得两次:
8. mapper=new QDataWidgetMapper(this);
38. mapper = new QDataWidgetMapper(this);
共
条评分
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!
---- 一个一直在入门的编程学习者
回复
举报
离线
刚来的初学者
UID:118826
注册时间
2011-06-30
最后登录
2012-05-16
在线时间
15小时
发帖
14
搜Ta的帖子
精华
0
金钱
145
威望
24
贡献值
0
好评度
14
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
3楼
发表于: 2011-12-04
按照两位说的,改了还是不行
共
条评分
回复
举报
离线
刚来的初学者
UID:118826
注册时间
2011-06-30
最后登录
2012-05-16
在线时间
15小时
发帖
14
搜Ta的帖子
精华
0
金钱
145
威望
24
贡献值
0
好评度
14
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
4楼
发表于: 2011-12-04
不好意思哈,是一位,
共
条评分
回复
举报
离线
刚来的初学者
UID:118826
注册时间
2011-06-30
最后登录
2012-05-16
在线时间
15小时
发帖
14
搜Ta的帖子
精华
0
金钱
145
威望
24
贡献值
0
好评度
14
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
5楼
发表于: 2011-12-04
程序实现:从Income表查询User=14的所有信息,并将它初始化在视图iotableView上,同时当选中视图iotableView上一行时,在其下面部件显示该行的的所有数据
共
条评分
回复
举报
离线
alexltr
UID:107032
注册时间
2010-11-01
最后登录
2025-05-25
在线时间
1693小时
发帖
537
搜Ta的帖子
精华
0
金钱
8837
威望
558
贡献值
0
好评度
584
访问TA的空间
加好友
用道具
论坛版主
加关注
发消息
只看该作者
6楼
发表于: 2011-12-04
回 3楼(刚来的初学者) 的帖子
怎么改的?
共
条评分
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!
---- 一个一直在入门的编程学习者
回复
举报
离线
alexltr
UID:107032
注册时间
2010-11-01
最后登录
2025-05-25
在线时间
1693小时
发帖
537
搜Ta的帖子
精华
0
金钱
8837
威望
558
贡献值
0
好评度
584
访问TA的空间
加好友
用道具
论坛版主
加关注
发消息
只看该作者
7楼
发表于: 2011-12-04
你把第9行的connec语句放在第47行看看,我不确定。
共
条评分
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!
---- 一个一直在入门的编程学习者
回复
举报
离线
刚来的初学者
UID:118826
注册时间
2011-06-30
最后登录
2012-05-16
在线时间
15小时
发帖
14
搜Ta的帖子
精华
0
金钱
145
威望
24
贡献值
0
好评度
14
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
8楼
发表于: 2011-12-05
修改9行后面的slot(currentRowChanged ( const QModelIndex & current, const QModelIndex & previous )),删除了38行,但还是不行,你的这个currentRowChanged ( const QModelIndex & current, const QModelIndex & previous )程序不认
共
条评分
回复
举报
离线
刚来的初学者
UID:118826
注册时间
2011-06-30
最后登录
2012-05-16
在线时间
15小时
发帖
14
搜Ta的帖子
精华
0
金钱
145
威望
24
贡献值
0
好评度
14
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
9楼
发表于: 2011-12-05
是不是QDataWidgetMapper的使用有甚么条件,烦得很
共
条评分
回复
举报
离线
jasongood
UID:122096
注册时间
2011-09-14
最后登录
2015-06-04
在线时间
21小时
发帖
39
搜Ta的帖子
精华
0
金钱
755
威望
49
贡献值
0
好评度
39
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
10楼
发表于: 2011-12-05
使用QDataWidgetMapper对像的void currentIndexChanged ( int index )信号,连接一个自己的槽,在自己的槽里面实现使用信号传来的index在QSqlRelationalTableModel对像里面获取对应的数据设置在想要显示的部件上。
共
条评分
回复
举报
离线
alexltr
UID:107032
注册时间
2010-11-01
最后登录
2025-05-25
在线时间
1693小时
发帖
537
搜Ta的帖子
精华
0
金钱
8837
威望
558
贡献值
0
好评度
584
访问TA的空间
加好友
用道具
论坛版主
加关注
发消息
只看该作者
11楼
发表于: 2011-12-05
沒有那麼難!!!
給你一個簡單的例子做參考.
Test.rar
(11 K) 下载次数:32
共
条评分
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!
---- 一个一直在入门的编程学习者
回复
举报
离线
condann
UID:126779
注册时间
2012-01-14
最后登录
2012-02-17
在线时间
1小时
发帖
1
搜Ta的帖子
精华
0
金钱
45
威望
11
贡献值
0
好评度
1
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
12楼
发表于: 2012-02-11
应该是combobox控件的问题。
QDataWidgetMapper中的combobox控件需要特殊处理,
参考:
http://www.cppblog.com/reborntercel/archive/2011/11/23/160805.html
共
条评分
回复
举报
离线
jgcddd
UID:118569
注册时间
2011-06-26
最后登录
2018-05-12
在线时间
96小时
发帖
74
搜Ta的帖子
精华
0
金钱
813
威望
83
贡献值
0
好评度
73
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
13楼
发表于: 2012-02-15
楼主能发一份你所有的源码吗?
共
条评分
回复
举报
发帖
回复
返回列表
http://www.qtcn.org/bbs
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
关闭
补充发布信息
验证码:
发 布
隐藏
快速跳转
站务及资讯
网站公告
新闻资讯
Qt官方发布
网站管理
Qt应用及资源
Qt 作品展
Qt代码秀
Qt应用版
Qt技术讨论区
Qt安装与发布
Qt中文处理
Qt基础编程
Qt QML开发
Qt嵌入式开发
Qt移动平台开发
其它技术开发讨论区
Qt图书专区
《C++ GUI Qt 4编程》(第2版)专栏
《Qt高级编程》专栏
《零基础学Qt4编程》专栏
《Qt设计模式》(第2版) 图书专栏
Python Qt GUI快速编程
Qt项目开发区
天池项目
Qt开放平台开发库
机械CAD
扇贝词典
非活跃项目区
社区中心
帖子回收站(Trash)
招聘、求职、供求、广告等
休闲娱乐
关闭
关闭
选中
1
篇
全选