首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监测/输出Qt信号

监测/输出Qt信号
EN

Stack Overflow用户
提问于 2014-06-03 15:13:22
回答 2查看 645关注 0票数 1

我定义了一些在不同场合发出的信号:

代码语言:javascript
复制
signals:
    void buttonXClicked(int x);
    void numButtonsChanged(int num);

现在,我只想看看这些信号是什么样子,以及参数是否正确。似乎有几种监测信号的方法。

在此处的帖子中,rohanpm引用参数-vs,该参数在此处指定为:http://qt-project.org/doc/qt-4.8/qtestlib-manual.html#qtestlib-command-line-arguments

这似乎是一种优雅和快捷的方式来获取我所需要的信息。但是老实说,我无法理解如何在哪里运行-vs。它不是qmake的一部分。我还得把它放哪儿?(我对qt很陌生)。

QSignalSpy相关,似乎有必要更改现有的类?难道没有一种“外部”的方法吗?

关于如何测试插槽有大量的文档--但与信号有关?我可以在某个地方使用printfcout吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-08 16:35:18

在阅读更多关于moc及其功能的文章时,我有了这个想法。(至少在使用NetBeans时),除了文件ButtonTest.cpp之外,还有文件moc_ButtonTest.cpp。内部有一个方法,名为:

代码语言:javascript
复制
// SIGNAL 0
void ButtonTest::buttonXClicked(int _t1)
{
    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
    QMetaObject::activate(this, &staticMetaObject, 0, _a);    
}

我简直不敢相信这么简单,但我刚加了一个

代码语言:javascript
复制
std::cout <<"buttonXClicked: "<<_t1;

它似乎做了我想做的事。

票数 1
EN

Stack Overflow用户

发布于 2014-06-03 15:34:54

正如链接文档所写:

使用所有可用的测试数据运行toUpper测试函数,使用名为零的测试数据运行toInt测试函数(如果指定的测试数据不存在,则关联的测试将失败)。

代码语言:javascript
复制
/myTestDirectory$ testMyWidget -vs -eventdelay 500

其中testMyWidget是构建的测试二进制文件。下面是-vs文档:

-vs输出每个发出的信号

如果您在grep中输出帮助,还有更多的文档:

代码语言:javascript
复制
/myTestDirectory$ testMyWidget --help | grep "\-vs"
-vs outputs every signal that gets emitted

如果您在编写基于QTestLib的单元测试时遇到了问题,这对您使用Qt 4来说是一个很好的起点:

QTestLib手册

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24018783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档