当前位置: 代码迷 >> QT开发 >> 信号/槽有关问题
  详细解决方案

信号/槽有关问题

热度:456   发布时间:2016-04-25 04:55:27.0
信号/槽问题
我写了个关于model/view的函数
[code=C/C++]class   view   {
...
public   slots:
        void   dataChanged(const   QModelIndex   &topLeft,   const   QModelIndex   &bottomRight);
...
};

void   view::setModel(Model   *model)   {
        m_model   =   model;
        connect(m_model,   SIGNAL(dataChanged(QModelIndex,QModelIndex)),
                        this,   SLOT(dataChanged(QModelIndex,QModelIndex)));
}

void   model::addData()   {
        ...
        emit   dataChanged(topLeft,   bottomRight);
}

Widget::Widget   {
        model   =   new   Model;
        view   =   new   View;
        view-> setModel(model);
 
        connect(model,   SIGNAL(dataChanged(QModelIndex,QModelIndex)),
                        this,   SLOT(testDataChanged(QModelIndex,QModelIndex)));
}[/code]

我在view类里有一个dataChanged()槽,在setModel()中添加了connect函数.
但view却没有响应model的dataChangeed()信号.
我在主类Widget中连接了dataChanged()信号和testDataChanged()槽,却能响应.
这是为什么?   请大家帮忙看看.

------解决方案--------------------
vie 应该继承自QObject,并且补上Q_OBJECT宏,才能支持信号槽
------解决方案--------------------
view只管显示,真正储存数据的是medol
我觉得不是信号槽没有响应,而是槽中view对数据的操作没有成功。
我也不知道我说的对不,没试验过,一点理解而已
  相关解决方案