• 6427阅读
  • 4回复

[提问]关于信号槽中给QTableView设定数据不响应的问题 [复制链接]

上一主题 下一主题
离线lwh1988
 

只看楼主 倒序阅读 楼主  发表于: 2013-12-18
问题是这样的:
在窗口A中返回一个分数,想在窗口B中QTableView显示出来,在窗口A中自定义了一个信号,在窗口B中自定义了一个信号槽,经跟踪,信号连接没有问题,但是B中信号槽中给QTableView设置数据的语句执行后,没有结果,B中QTableView里面还是显示不出来,不知道是什么原因。哪位高手给指导一下呢?急求!搞了好几天了。。。。
窗口B中的QTableView代码:

       yewu_model = new QStandardItemModel(this);
    yewu_model->setColumnCount(4); //设置列数为5行
    yewu_model->setRowCount(20); //设置行数为5
    yewu_model->setHeaderData(0,Qt::Horizontal,QString::fromLocal8Bit("内容"));
    yewu_model->setHeaderData(1,Qt::Horizontal,QString::fromLocal8Bit("成绩"));
    yewu_model->setHeaderData(2,Qt::Horizontal,QString::fromLocal8Bit("结果"));
    yewu_model->setHeaderData(3,Qt::Horizontal,QString::fromLocal8Bit("时间"));
    yewu_tableView = new QTableView(this);
    yewu_tableView->setModel(yewu_model);
    yewu_tableView->resizeColumnsToContents();
    delegate02=new QItemDelegate;
    yewu_tableView->setItemDelegate(delegate02);


窗口B中的信号槽响应代码:

void MyMainwindow::RecordSlot(string fenshu)
{
    QTextCodec *code= QTextCodec::codecForName("GBK");
    yewu_model->setData(yewu_model->index(0, 0, QModelIndex()),  QObject::tr("抄表"));
    test_model->setData(test_model->index(0, 1, QModelIndex()),  QObject::tr("已接收"));
}
离线lwh1988

只看该作者 1楼 发表于: 2013-12-18
说明:yewu_model 是在一个DockWidget中
离线lwh1988

只看该作者 2楼 发表于: 2013-12-18
请问有没有大侠知道呢??在B窗口的其他函数中可以显示,但是在信号槽中不显示,是什么原因呢??
离线lwh1988

只看该作者 3楼 发表于: 2013-12-19
哪位好心人给个解决办法呀??
离线XChinux

只看该作者 4楼 发表于: 2013-12-20
    yewu_model->setData(yewu_model->index(0, 0, QModelIndex()),  QObject::tr("抄表"));
    test_model->setData(test_model->index(0, 1, QModelIndex()),  QObject::tr("已接收"));

1. 改用setItem()方法试验一下
2. 使用英文字符串试验一下(抄表、已接收)
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个