Pyside:我怎么知道哪个线程发出“完成”信号?

伊戈尔

我开始一些线程,但想知道哪个线程完成了:

...
...
def start_ten_threads(self):
    self.workers = []

    for i in range(0, 10):
        self.workers.append(thread_worker(i, self))

        ...    
        ...

    for k in range(0, 10):
        self.workers[k].finished.connect(lambda: self.print_finished("WorkerThread %d finished" % k))
        self.workers[k].start()

@Slot(str)
def print_finished(self, str):
    print(str)

对于每个线程,我得到相同的数字9(k的最后一个值)。为什么?我可以通过信号“完成”以这种方式使用参数吗?我已经阅读了一些有关QSignalMapper的内容。这里还有别的办法吗?

如果我使用self.sender(),我会指向该线程,但是我不知道它是哪个线程号。

埃里克

对于lambda,请尝试:

lambda k=k: self.print_finished("WorkerThread %d finished" % k)
       ^^^

使用此语法,klambda将捕获并使用创建lambda时的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从线程发出我的主信号?

来自分类Dev

我怎么知道我是哪个Mosh客户?

来自分类Dev

我怎么知道我点击了哪个链接?

来自分类Dev

我怎么知道哪个按钮被点赞

来自分类Dev

我怎么知道选择了哪个值

来自分类Dev

我怎么知道模板重复已经完成?

来自分类Dev

我怎么知道SIP已经完成通话?

来自分类Dev

我怎么知道哪个程序创建哪个文件夹?

来自分类Dev

GitFlow:我怎么知道我正在使用哪个功能?

来自分类Dev

我的电脑很大声:我怎么知道是哪个风扇?

来自分类Dev

我怎么知道我要进入哪个用户限制?

来自分类Dev

我怎么知道我正在运行哪个版本的Debian?

来自分类Dev

我怎么知道我正在运行哪个版本的Apache?

来自分类Dev

我怎么知道我的串口是哪个/ dev / ttyS *?

来自分类Dev

我怎么知道我在 HTML 中点击了哪个链接

来自分类Dev

我怎么知道我需要哪个 Modernizr 部分?

来自分类Dev

pyqt 从线程线程发出信号

来自分类Dev

我怎么知道实例的属性是否是Django信号中的ImageField?

来自分类Dev

哪个线程处理信号?

来自分类Dev

我怎么知道哪个DMS规则称为Sitecore组件?

来自分类Dev

我怎么知道哪个表是左和右mysql

来自分类Dev

我怎么知道哪个孩子退出了C语言?

来自分类Dev

我怎么知道从<ul>中单击了哪个<li>元素?

来自分类Dev

我怎么知道哪个进程正在使用交换?

来自分类Dev

我怎么知道Mongodb查询在哪个节点上运行?

来自分类Dev

我怎么知道要安装哪个版本的pip包?

来自分类Dev

我怎么知道哪个GPU足以解决问题?

来自分类Dev

我怎么知道在按钮类中单击了哪个按钮?

来自分类Dev

哪个USB插槽是2.0或3.0?我怎么知道?

Related 相关文章

热门标签

归档