【问题标题】:AttributeError: 'QString' object has no attribute 'find'AttributeError: 'QString' 对象没有属性 'find'
【发布时间】:2016-07-08 13:42:22
【问题描述】:

确实这个问题被问了很多次,但找不到任何东西可以解决我的问题。我的 python 项目中有很多模块,它工作正常,但是在创建该项目的可执行文件时出现错误:

AttributeError: 'QString' 对象没有属性 'find'

不幸的是,由于代码太大,我无法制作可重现的示例。但是错误来自那一行,即接受用户输入

input = self.builselcom.currentText()

其中包含类似hg19.bt2

我有上面那行的索引

tofind = ".bt2"

并尝试通过

找到
input.find(tofind)

注意:项目工作正常,但可执行文件出错。

【问题讨论】:

    标签: python pyqt4 executable


    【解决方案1】:

    您需要将用户输入转换为字符串。只需将str 添加到input = str(self.builselcom.currentText()) 即可。希望这会有所帮助。

    【讨论】:

    • 如果这是他在开发环境中也会遇到的问题(他称之为“项目”)。
    • 你的说法似乎是合理的,我不确定Qt使用的是哪个版本,但我猜该可执行文件无法typecast用户输入。
    【解决方案2】:

    我的猜测是您的可执行文件正在使用不同版本的 Qt DLL。 (我使用 cx_Freeze 和 PySide,只能代表那个环境。) QString 类在最新的 DLL 中不存在,但它曾经存在;所以如果这个错误发生在我的设置中,我肯定会知道这是一个 DLL 问题。也许您可以尝试将 DLL 显式复制到可执行目录。

    【讨论】:

      猜你喜欢
      • 2016-09-12
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      • 2019-03-07
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多