• 5822阅读
  • 9回复

急!急!急!queued signal问题 [复制链接]

上一主题 下一主题
离线csoapy
 

只看楼主 倒序阅读 楼主  发表于: 2009-01-19
— 本帖被 XChinux 执行加亮操作(2009-01-19) —
我的信号和槽在同一个线程中时就没有问题,一旦把持有槽的对象在另一个线程里面运行就有问题:

<quote>
app-stderr:Object::connect: No such signal Vehicle::requstQuery(Vehicle&,QString)
</quote>

我的信号和槽是这样定义的:
public:
    signals:
    void requestQuery(Vehicle & vehicle, const QString & sql);

private slots:
  void querying(Vehicle & vehicle, const QString & sql);

发射信号:emit requestQuery(*this, "123456");
奇怪的是,错误提示里面却说我的信号是requstQuery(Vehicle&,QString),那个amp;是哪里来的?中文空格问题可以排除。
另外我也Q_DECLARE_METATYPE(Vehicle)了,qRegisterMetaType<Vehicle>("Vehicle");也执行成功了。

还可能有什么问题?

从昨天晚上一直到再现在都没搞定!

先谢了!!

离线csoapy

只看该作者 1楼 发表于: 2009-01-19
app-stderr:Object::connect: No such signal Vehicle::requstQuery(Vehicle&,QString)
应为:
app-stderr:Object::connect: No such signal Vehicle::requstQuery(Vehicle&amp;,QString)
英文的&后面的字母在我的浏览器里面显示不出来。
离线csoapy

只看该作者 2楼 发表于: 2009-01-19
goole了半天也没结果,都是千篇一律地说什么,Q_DECLARE_METATYPE(),qRegisterMetaType<Vehicle>("Vehicle"),都没用。
离线csoapy

只看该作者 3楼 发表于: 2009-01-19
对了,在以前的工程里它是这么打印的
"QObject::connect: Cannot queue arguments of type 'Vehicle::requstQuery(Vehicle&amp;,QString)'\n"
                    "(Make sure 'Vehicle::requstQuery(Vehicle&amp;,QString)' is registered using qRegisterMetaType().)"

现在我把整个模型抽出来新建一个工程它又说no sush  signal,它自己给我加了个amp;当然是没有了!!!

我的环境:
  系统:opensuse,版本:11.1 release,未打开自动升级
  桌面:kde4,版本:4.1.3 系统自带   
  C++:gcc-c++,4.3-34.168,从官方源安装
  QT4:libqt4-devel, 版本:4.4.3-4.6,从官方源安装
  QtCreator,版本:0.9.1,从官方网站下载*.bin文件安装
离线XChinux

只看该作者 4楼 发表于: 2009-01-19
qRegisterMetaType<Vehicle>("Vehicle")

你的Vehicle有没有在某个名字空间里?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线csoapy

只看该作者 5楼 发表于: 2009-01-19
没有啊,就是一个class而已。
离线csoapy

只看该作者 6楼 发表于: 2009-01-19
没有啊,就是一个class而已。
离线csoapy

只看该作者 7楼 发表于: 2009-01-19
不好意思,我的帖子修改功能不好用,这边网络也不好,重发了一次。
离线csoapy

只看该作者 8楼 发表于: 2009-01-19
现在换到windows下也是用qt4.4.3编译。
倒是没有自动给我加amp;,不过仍然是no sush signal (Vehicle&, QString),看来问题出在信号里面的后一个参数上,我明明在所有的地方都用(Vehicle&, const QString &),它把我后一个参数的const 和 &都给丢了。
离线csoapy

只看该作者 9楼 发表于: 2009-01-19
估计是中文编码问题,我抽出来的那个模型现在可以在两个平台下编译运行了。
快速回复
限100 字节
 
上一个 下一个