Ron*_*nen 6 c++ qt visual-studio
在调试期间,我想看看等待我的程序的事件循环.它可能已经泛滥,我希望看到什么信号,没有(手动)向每个Q_EMIT添加特定的日志消息.
可能的解决方案可能是看一些包含事件队列的内部qt数据结构(有这样的事情吗?怎么样?)
要么 -
为每个发出的信号写一条日志信息(这可能吗?).
还有其他想法吗?
(Windows上的QT 4.8,使用visual studio 2012)
信号和事件是彼此没有任何关系的两件事。
我想看看我的程序的事件循环有什么在等待。应该是被淹了
首先,让我们弄清楚术语:
QObjects,事件队列可能被淹没的原因有两个:
要检测代码块时间过长,您可以使用我为另一个答案编写的工具。
要了解有多少事件正在等待任何给定线程,请使用未记录的qGlobalPostedEventsCount(). 您可以将其添加到上面链接的工具的代码中。
不确定这对您来说是否足够,但您可以尝试在实现 eventFilter() 的 QObject 之间安装事件过滤器,如下所示:
class MyWidget : public QWidget
{
QGraphicsView myView;
MyWidget()
{
myView->installEventFilter(this);
// incoming events to myView are shown on the standard output
}
};
Run Code Online (Sandbox Code Playgroud)
通过阅读文档,您可以变得更有创意。
| 归档时间: |
|
| 查看次数: |
2531 次 |
| 最近记录: |