如何从 PyQt 中的另一个线程访问 GUI 元素

2024-02-01

我正在尝试创建一个客户端-服务器应用程序,当服务器关闭时,我希望关闭在另一个线程上运行的客户端 GUI。我希望访问 GUI 并关闭,但出现 X 错误:

实施不当(...)。

我该如何解决这个问题?


您可以做的是当第一个线程关闭时发出自定义信号。

from PyQt4 import QtGui as gui
from PyQt4 import QtCore as core

import sys
import time


class ServerThread(core.QThread):
    def __init__(self, parent=None):
        core.QThread.__init__(self)

    def start_server(self):
        for i in range(1,6):
            time.sleep(1)
            self.emit(core.SIGNAL("dosomething(QString)"), str(i))

    def run(self):
        self.start_server()


class MainApp(gui.QWidget):
    def __init__(self, parent=None):
        super(MainApp,self).__init__(parent)

        self.label = gui.QLabel("hello world!!")

        layout = gui.QHBoxLayout(self)
        layout.addWidget(self.label)

        self.thread = ServerThread()
        self.thread.start()

        self.connect(self.thread, core.SIGNAL("dosomething(QString)"), self.doing)

    def doing(self, i):
        self.label.setText(i)
        if i == "5":
            self.destroy(self, destroyWindow =True, destroySubWindows = True)
            sys.exit()


app = gui.QApplication(sys.argv)
form = MainApp()
form.show()
app.exec_()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 PyQt 中的另一个线程访问 GUI 元素 的相关文章

随机推荐

  • 在Python中将一个类的方法安全地绑定到另一个类[重复]

    这个问题在这里已经有答案了 我知道我可以将一个函数附加到一个类并使其成为一个方法 gt gt gt def is not bound inst name print Hello s name gt gt gt gt gt gt class
  • 停止调用 JNI 函数的 Java 线程

    在这里我想停止我的线程或杀死我的线程它是在Java层创建的 该线程正在调用JNI函数 有时根据我的应用程序要求 我必须停止此操作JNI函数执行在某些条件下 如果它正在进行 否则不会 new Thread new Runnable Overr
  • 如何管理具有不同数据库模式的git分支?

    我有一个项目 需要开发一项新功能 该功能需要重新设计部分数据库 同时保持主要开发分支在旧模式上工作 您管理此类项目的最佳实践是什么 我考虑过在开发新功能时拥有一个单独的数据库 但意识到这需要将数据库配置签入存储库 这是不行的 我还有其他方法
  • Angular2 与 Material Design Lite

    我在我的 angular2 应用程序中添加了以下代码 以帮助 MDL 在应用程序中移动时重新注册组件 ngAfterViewInit componentHandler upgradeDom 尽管它似乎工作正常 如预期 但我收到以下错误 16
  • 什么可以解释调用 free() 时的堆损坏?

    我已经调试了几天的崩溃 该崩溃发生在 OpenSSL 的深处 与维护者讨论here https www mail archive com openssl dev openssl org msg38571 html 我花了一些时间进行调查 所
  • 基本数据类型(字符串和整数)如何在 Python 和 Perl 中实现

    最近我一直想知道我对字符串和整数等基本类型执行的各种操作在性能方面如何工作 并且我认为如果我知道这些基本类型是如何实现的 即我已经听说 Python 中字符串和整数是不可变的 这是否意味着任何修改字符串中一个字符的操作都是 O n 因为必须
  • sql中的特殊字符排序

    我有名为 联系人 的表 有名为 id 和 name 的列 各列值如下所示 ID Name 1 ABC 3 DEF 2 GHI JKL null MNO null PQR 我需要查询要在顶行列出的特殊字符 如下所示 ID Name JKL 1
  • CakePHP:Ajax 请求的控制器响应错误

    我正在使用 jQuery 向某些控制器操作发出 AJAX 请求 该请求是通过同一控制器中编辑操作视图中的按钮激活的 我的问题 Ajax 请求返回编辑视图的所有代码 包含所有表单和输入 而不是预期的数量 如果我将相同的 ajax 按钮放在添加
  • javascript 在 Rails 3.1 基于资产的应用程序中包含两次

    尽管问题的标题与之前的一些问题非常相似 但我的问题似乎有所不同 简要地 第一项在 js 清单中包含两次 这是我的全部 app assets javascript application jsRails 3 1 应用程序中的文件 requir
  • iOS:UIPageViewController - 使用按钮跳转到下一页

    我在 PageViewController 中有一系列 VC 用户可以用手指从左到右导航 我需要添加按钮 这些按钮基本上执行与手指滑动相同的操作 即通过 VC 向左或向右移动 1 个 我怎样才能做到这一点 现在我正在使用这两种方法在用户滑动
  • Python pip freeze 中的三等号和 ubuntu2 是什么?

    在我的 AWS Ubuntu 14 04 实例上 我刚刚做了一个pip freeze gt requirements txt这给了我一个文件 其中还包含以下两行 python apt 0 9 3 5ubuntu2 python debian
  • PyCharm 中所有 pip 安装均“未找到匹配的发行版”

    我在 Windows 7 上运行 PyCharm Community Edition 2016 1 2 和 Python 3 4 3 并且有以下行为 在 PyCharm 中安装新包 从 设置 gt 项目解释器 失败并显示错误消息No mat
  • select from ... - 基于 JSON 格式的值

    假设我有一个数据库表 其中包含几个常见列 例如姓名 性别 年龄 此外 我还有一个附加列 使用 JSON 数据类型 可从 Postgres 9 2 获得 在 JSON 中具有任意长度和任意字段 occupation football occu
  • 当我在 youtube api 中使用 order-date 时,会出现总结果,但找不到项目

    当我在 youtube api 中使用 order date 时 会有总结果 但未找到项目 YOUR API KEY YOUR API KEY 这两个链接给出不同的结果 None
  • 通过另一个列表/数组过滤 Linq 子集合

    当我尝试根据简单值过滤子集合时 我可以通过执行以下操作轻松完成 db Table Where a gt a SubTable Any b gt b SubTableId 1 但是 当我尝试根据与其对应的值列表过滤同一个子集合时 我总是收到错
  • 我正在尝试在 angular1 项目中使用 ag-grid

    我在 Jhipster 从 Angular 1 项目开始 我对 ag grid 组件有一些问题 第一 我对所有组件使用 Bower 并在 angular js 文件之前包含我的 ag grid 文件 我想我可以通过使用覆盖来解决这个问题 但
  • 无法在 savon 调用上设置 SOAP 标头参数

    我正在使用 savon 2 2 进行 SOAP 调用 初始化 client Savon client wsdl SOAP WSDL endpoint SOAP URL 我可以像这样进行 SOAP 调用 并且效果很好 resp client
  • onBackPressed() 已弃用。还有什么选择呢?

    我已经升级了targetSdkVersion and compileSdkVersion to 33 我现在收到一条警告 告诉我按下后退 https developer android com reference android app A
  • Scala 与 Akka 中的相互身份验证

    我将使用 Akka 在 Scala 中创建一个 TLS 会话 并在客户端和服务器之间进行相互身份验证 我创建了两个 CA 证书 它们必须信任来自另一部分的相应证书 您能给我一个如何实现这一点的例子吗 谢谢 我创建了一个 github 项目
  • 如何从 PyQt 中的另一个线程访问 GUI 元素

    我正在尝试创建一个客户端 服务器应用程序 当服务器关闭时 我希望关闭在另一个线程上运行的客户端 GUI 我希望访问 GUI 并关闭 但出现 X 错误 实施不当 我该如何解决这个问题 您可以做的是当第一个线程关闭时发出自定义信号 from P