我正在通过制作一个简单的Twitter客户端来练习PyQt和(Q)线程。我有两个Qthread。
主/ GUI线程。
Twitter提取线程-每隔X分钟从Twitter提取数据。
因此,每隔X分钟,我的Twitter线程就会下载一组新的状态更新(Python列表)。我想将此列表移交给Main /
GUI线程,以便它可以使用这些状态更新窗口。
我假设我应该使用信号/插槽系统将“状态” Python列表从Twitter线程传输到Main / GUI线程。所以,我的问题是双重的:
如何从Twitter线程发送状态?
如何在Main / GUI线程中接收它们?
据我所知,PyQt默认情况下只能通过信号/插槽发送PyQt对象。我想我应该以某种方式注册一个自定义信号,然后再发送该信号,但是对于像我这样的新手,我发现的有关此文档的内容还不清楚。我已订购一本PyQt书籍,但不会在下个星期寄出,也不想等到那时。:-)
我在Ubuntu上使用PyQt 4.6-1
更新:
这是无效代码的专家。首先,我尝试将信号(“ newStatuses”,我刚刚组成的一个名称)“连接”到Main /
GUI线程中的函数self.update_tweet_list:
QtCore.QObject.connect(self.twit_in,
QtCore.SIGNAL("newStatuses (statuses)"),
self.update_tweet_list)
然后,在Twitter线程中,我这样做:
self.emit(SIGNAL("newStatuses (statuses)"), statuses)
调用此行时,出现以下消息:
QObject::connect: Cannot queue arguments of type 'statuses'
(Make sure 'statuses' is registered using qRegisterMetaType().)
我搜索了qRegisterMetaType(),但没有找到我能理解的与Python相关的任何内容。
从这个例子:
http://doc.qt.digia.com/4.5/qmetatype.html
int id = QMetaType.type("MyClass");
您可以用Python写下
from PyQt4 import QtCore
id = QtCore.QMetaType.type('MyClass')
编辑
答案摘自评论:
self.emit(SIGNAL("newStatuses(PyQt_PyObject)"), statuses)
/** 自定义消息发送接口(目前只支持文本消息发送) @param chatController 聊窗实体(必须是小能SDK创建的聊窗实体NtalkerChatController类型) @param type 消息类型: 11:文本消息 12:图片消息 13:语音消息 14:视频消息 @param message 消息内容 */ NSString *str = @“自定义文本消息test”;
问题内容: 我试图在PyQt中发出自定义事件。一个小部件将发出,另一个小部件将监听事件,但是两个小部件不需要关联。 在JavaScript中,我会这样做 编辑:我知道信号和插槽,但只知道如何在父级和子级之间使用它们。我如何在任意不相关的小部件之间使用这种机制(或其他机制)? 问题答案: 在PyQt中,以下说明: 等价的 以类似的方式: 等价的 但是最大的区别是“文档”对象的范围,因为连接是在全局元
我正在使用docker运行datadog代理 我想使用dogstatsd发送自定义指标。当我运行 我可以在wireshark中看到,udp数据包成功地从源到目标,但这个指标没有提交给datadog。我缺少一些配置吗?
本文向大家介绍按钮功能和自定义事件– PyQt,包括了按钮功能和自定义事件– PyQt的使用技巧和注意事项,需要的朋友参考一下 首先,让我们创建一个主代码;然后,我们将对其进行修改。我在这里为您提供主代码。并且,所做的修改将带有其说明。让我们做一些编码: 源代码: 输出结果 此输出布局是使用主窗口小部件生成的。QtGui.QMainWindow。self.setWindowIcon(QtGui.Q
本文向大家介绍php微信开发自定义菜单,包括了php微信开发自定义菜单的使用技巧和注意事项,需要的朋友参考一下 目前微信服务号自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。请注意,创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来。建议测试时可以尝试取消关注公众账号后再次关注,则