PyQt 从 GUI 获取值

2024-03-05

我使用构建了一个用户界面QtDesigner然后转换.ui to .py。用户界面有不同comboBox and textBox单击“运行”按钮后我想从中读取值。运行函数,然后在计算完成后填充用户界面的其他文本框。但是当我改变的值comboBox然后单击按钮,脚本仍然读取初始值。

我做了一个简单的 GUI,其中包含一个包含两个项目和一个文本框的组合框。我正在尝试读取组合框文本并根据所选项目设置文本框的文本。

这是我用来运行的代码GUI并读取值:

from PyQt4 import QtGui
from pyQt4 import QtCore
import sys
import GUI

class MyThread(QtCore.QThread):
    updated = QtCore.pyqtSignal(str)
    def run(self):
        self.gui = Window()
        name = self.gui.gui_Name.currentText()
        print (name)

        if name == 'Cristina':
            country = 'Italy'
        else:
            country = 'Other'

        self.updated.emit(str(1))


class Window(QtGui.QMainWindow, GUI.Home):
    def __init__(self,parent = None):
        super(Window,self).__init__(parent)
        self.setupUi(self)
        self._thread = MyThread(self)
        self._thread.updated.connect(self.updateText)
        self.update()
        self.
        self.pushButton.clicked.connect(self._thread.start)


    def updateText(self,text):
        self.Country.setText(str(country))

有什么想法吗?

Thanks


如果您在运行中实现的代码是我认为您正在滥用线程的代码,因为currentTextChanged信号就足够了,如下所示:

class Window(QtGui.QMainWindow, GUI.Home):
    def __init__(self,parent = None):
        super(Window,self).__init__(parent)
        self.setupUi(self)
        self.gui_Name.currentTextChanged.connect(self.onCurrentTextChanged)

    def onCurrentTextChanged(self, text):
        if if name == 'Cristina':
            country = 'Italy'
        else:
            country = 'Other'
        self.Country.setText(str(country))

另一方面,如果实际代码是一项耗时的任务,那么使用线程就足够了。如果任务以QComboBox在按下按钮的那一刻,它会将该值建立为线程的属性,在您的情况下,您正在另一个线程中创建一个新的 GUI,而不是使用现有的 GUI:

class MyThread(QtCore.QThread):
    updated = QtCore.pyqtSignal(str)

    def run(self):
        name = self.currentText
        print(name)
        if name == 'Cristina':
            country = 'Italy'
        else:
            country = 'Other'
        self.updated.emit(country)

class Window(QtGui.QMainWindow, GUI.Home):
    def __init__(self,parent = None):
        super(Window,self).__init__(parent)
        self.setupUi(self)
        self._thread = MyThread(self)
        self._thread.updated.connect(self.Country.setText)
        self.pushButton.clicked.connect(self.start_thread)

    def start_thread(self):
        self._thread.currentText = self.gui_Name.currentText()
        self._thread.start()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyQt 从 GUI 获取值 的相关文章

随机推荐

  • 绘图:平行坐标图:轴样式

    我真的很喜欢平行坐标图 情节很好 但我刚刚遇到了一个需要帮助的问题 某些坐标是否可以使用基于 log10 的轴 正如您在下面的示例中看到的 执行 log10 变换可以更好地区分较小的值 然而 通过转换数据 我们失去了解释这些值的能力 我更喜
  • 检查每个 Node.js 请求的身份验证凭据

    我使用 Node js 与 Express 和 connect auth 来对用户进行身份验证 这是请求 index时的验证 if req isAuthenticated res redirect dashboard else res re
  • 将 [0-255] 整数范围转换为 [0.0-1.0] 浮点范围

    在 WxWidget 中 颜色由 RGB 整数三元组表示 要使用 0 0 1 0 浮点三元组表示与其他库交互 需要进行转换 WxPython Numpy 或 Python 中是否已经存在这样的转换函数 您可以将每个元素除以 255 或 25
  • 解析数据 org.json.JSONException 时出错:输入结束于字符 0

    解析 JSON 时出现错误 解析数据 org json JSONException 时出错 在字符 0 处输入结束 错误日志 04 19 20 51 00 635 E ViewRootImpl 24857 sendUserActionEve
  • 自定义 Django 模型字段中的“对象没有属性”

    我正在尝试创建一个 Django 模型字段 该字段表示 HTML 中包含天 小时 分钟和秒文本输入字段的持续时间 并使用 ical 格式 RFC5545 将持续时间存储在数据库中 这与我的问题有关如何在 Django 中创建一个 ical
  • 如何在 Unix 中批量执行 svn mv

    我想将大量文件从一个目录批量移动到svn中的另一个目录 不幸的是 svn 只支持一次移动一个文件 基本上我想移动某种类型的文件 xml 到一个完全不同的目录 例如mv foo 酒吧 xml forbar xml 我尝试使用 find 并使用
  • 如何将 PIL 添加到 Eclipse 中的 PyDev,以便我可以导入它并在我的项目中使用它?

    我正在尝试在我的项目中使用 PIL 但 pydev 似乎无法在我的项目中找到它 首先 当我进入 python shell 时我可以看到它 我可以导入它并在 python sys path 中看到它 其次 我将其添加到 eclipse 中的
  • 带有可选小时数的 TimeSpan FormatString

    我有一个时间跨度 ts 主要有分钟和秒 但有时也有几个小时 我想要ts返回一个格式化的字符串 该字符串将给出以下结果 3 30 hours not displayed showing only full minutes 13 30 1 13
  • 取消从应用程序调用 Web 服务

    我有一个 winform 应用程序 有两个按钮 GetData 和 Close 在 GetData 上 我从 Web 服务检索一些数据 而 Close 只是关闭对话框 我在一个单独的线程上调用网络服务 该线程是类实例变量 如果从 Web 服
  • 使用正则表达式进行 C Sharp 文件夹搜索

    从顶级目录获取与特定正则表达式匹配的文件夹列表的最有效方法是什么 我目前只是递归地迭代子文件夹以查看它们是否与正则表达式匹配 如果匹配 我将使用目录路径获取文件名 目前 由于此目录中的文件夹数量较多 使用当前方法进行此搜索大约需要 50 分
  • 如何在反应路由中设置延迟功能?

    如何在 React js 上设置延迟函数 有没有什么方法可以在反应路由中添加或删除类 以便页面可以转换 添加 删除或切换类每次都应该有效 是否可以使用延迟功能添加 删除或切换路由类 或者我可以使用第三方库吗 import React fro
  • 在 Android 中获取 Google 地图时出错

    我正在开发一个 Android 应用程序 该应用程序需要 Google 地图 为此 我在以下链接中使用相同的示例 谷歌地图的链接 http www androidhive info 2013 08 android working with
  • Android-decodeBase64 导致应用程序崩溃

    我必须加密一个字符串 但应用程序无法达到加密方法 它在加载时崩溃 我正在使用 Apache Commons Codec 库 private EditText txtPass EditText findViewById R id txtPas
  • BxSlider 将最后一张幻灯片显示为第一张幻灯片

    我创建了 4 个滑块 最初 所有 4 个滑块都是隐藏的 显示 无 因此我使用此代码在单击其各自类别时显示相关滑块 滑块配置 touchEnabled true hideControlOnEnd true preloadImages all
  • 调用(委托)

    谁能解释一下上面写的这个声明link http msdn microsoft com en us library system windows forms control invoke aspx Invoke Delegate 在拥有该委托
  • 区分不可变对象和可变对象的 const 引用

    C 中是否有任何公认的方法来区分对不可变对象和可变对象的 const 引用 e g class DataBuffer class Params class C public Given references must be valid du
  • HERE 地图 JS API 3.1 - Angular 中样式组“非碰撞”错误

    在使用卫星基础层加载 HERE 地图时 有时会出现此错误 Tangram error Error for style group non collision for tile 13 16 15542 12554 15 Cannot read
  • 如何使 sql 作业步骤退出报告失败

    我有一个sql作业步骤 像这样 Declare Result varchar 255 exec myprocedure Result Result output 我想做的事 如果 Result Error 则将作业标记为失败 我该如何实现这
  • 条形图/折线图 - 仅显示最后一个数据点的标签

    我无法获得条形图或折线图来显示 X 轴上的所有标签 正如您在提供的打印屏幕中看到的 只有最新的数据点显示其标签 这是使用场景生成器时的情况 我是否必须有一个带有用于 CategoriesAxis 的字符串的 ObservableList 我
  • PyQt 从 GUI 获取值

    我使用构建了一个用户界面QtDesigner然后转换 ui to py 用户界面有不同comboBox and textBox单击 运行 按钮后我想从中读取值 运行函数 然后在计算完成后填充用户界面的其他文本框 但是当我改变的值comboB