在 PyQt5 中,getOpenFileName 不会导致 Pycharm 中弹出文件选择[重复]

2024-04-23

使用教程点中的一段示例代码,我无法使用该代码打开文件对话框。

我正在使用 Ubuntu MATE 16.04,python 版本 3.7.4,PyQt5 版本 5.13.1 和以下代码

import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

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

        layout = QVBoxLayout()
        self.btn = QPushButton("QFileDialog static method demo")
        self.btn.clicked.connect(self.getfile)

        layout.addWidget(self.btn)
        self.le = QLabel("Hello")

        layout.addWidget(self.le)

        self.contents = QTextEdit()
        layout.addWidget(self.contents)
        self.setLayout(layout)
        self.setWindowTitle("File Dialog demo")

    def getfile(self):
        fname, _ = QFileDialog.getOpenFileName(self, 'Open file',
                                            '', "Image files (*.jpg *.gif)")
        print('The file name is...', fname)
        self.le.setPixmap(QPixmap(fname))

def main():
    app = QApplication(sys.argv)
    ex = filedialogdemo()
    ex.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

昨天我在 Windows 计算机上执行了代码,没有任何问题。由于我没有收到任何错误消息,只是收到None作为回报..我无法真正调试它..至少我不知道如何..非常感谢任何帮助

To clarify what I get, here is a screen shot: enter image description here

换句话说:我的 GUI 已创建,我可以与其交互。这意味着当我按下按钮时,连接的功能is调用(因为它打印出我的要求)。但没有打开文件对话框/资源管理器,因此程序的返回是None。因此之后没有打印任何内容The file name is...

EDIT2:我重新安装了 PyQt5 软件包pip3,测试这是否有任何区别。但遗憾的是,没有..

编辑3:正如 @ekhumuro 正确所说,如果您在简单的控制台(例如不是 Pycharm)中运行此代码,那么它应该运行良好。确实如此。


经过更多搜索后,我找到了答案。这对我有帮助,添加以下内容option to the openFileDialog

fname, _ = QFileDialog.getOpenFileName(self, 'Open file',
                                             '', '',
                                             options=QFileDialog.DontUseNativeDialog)

这个答案是由 @wagnerpeer 在以下问题上找到的

QFileDialog 窗口中没有可见文件 https://stackoverflow.com/questions/12209557/no-files-visible-in-the-qfiledialog-window

编辑:@ekhumoro 他在我下面的评论非常重要且正确。仅当在 IDE 中工作时才需要此解决方案

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

在 PyQt5 中,getOpenFileName 不会导致 Pycharm 中弹出文件选择[重复] 的相关文章

  • 使用 Flask-restful RequestParser 进行嵌套验证

    使用烧瓶宁静 http flask restful readthedocs org 微框架 我在构建一个RequestParser这将验证嵌套资源 假设预期的 JSON 资源格式为 a list obj1 1 obj2 2 obj3 3 o
  • “NoneType”对象不可订阅?

    list1 name1 info1 10 list2 name2 info2 30 list3 name3 info3 50 MASTERLIST list1 list2 list3 def printer lst print Availa
  • Pytorch 损失为 nan

    我正在尝试用 pytorch 编写我的第一个神经网络 不幸的是 当我想要得到损失时遇到了问题 出现以下错误信息 RuntimeError Function LogSoftmaxBackward0 returned nan values in
  • MySQL 的 read_sql() 非常慢

    我将 MySQL 与 pandas 和 sqlalchemy 一起使用 然而 它的速度非常慢 对于一个包含 1100 万行的表 一个简单的查询需要 11 分钟以上才能完成 哪些行动可以改善这种表现 提到的表没有主键 并且仅由一列索引 fro
  • 如何/在哪里发布 Python 包

    如果一个人创建了一个有用的 Python 包 那么如何 在哪里发布 宣传它以供其他人使用 我已经把它放到了 github 上 但几周后谷歌也没有找到它 包装整洁完整 我制作它供我个人使用 不与其他人分享将是一种耻辱 这是 PyPI 指南 h
  • 如何在cvxpy中编写多个约束?

    我想在 cvxpy 下的优化问题中添加许多约束 在 matlab 中 我可以通过添加一行 subject to 然后使用 for 循环来生成约束 我怎样才能在 cvxpy 中做同样的工作 因为 cvxpy 中没有 服从 概念 有什么建议吗
  • Python:如何删除圆括号内的文本?

    我试过了 但没用 return re sub myResultStats text 建议 thanks 尝试这个 return re sub myResultStats text 括号表示捕获组 因此您必须转义它们
  • 识别 Windows 版本

    我正在编写一个打印出详细 Windows 版本信息的函数 输出可能是这样的元组 32bit XP Professional SP3 English 它将支持 Windows XP 及更高版本 我一直坚持获取 Windows 版本 例如 专业
  • 这是我尝试安装 pip3 时得到的结果

    这是我尝试安装 pip3 时得到的结果 sudo apt get install python3 pip Reading package lists Done Building dependency tree Reading state i
  • 将带有非字符串关键字的 dict 传递给 kwargs 中的函数

    我使用具有签名功能的库f args kwargs 我需要在 kwargs 参数中传递 python dict 但 dict 不包含关键字中的字符串 f 1 2 3 4 Traceback most recent call last File
  • 从文件中读取单词并放入列表中

    本质上 我有一个巨大的文件 所有文件包含每行多个单词 每个单词用空格分隔 有点像这样 WORD WORD WORD WORD ANOTHER WORD SCRABBLE BLAH YES NO 我想要做的是将文件中的所有单词放入一个巨大的列
  • 可变和不可变类变量如何初始化?

    运行下面的示例代码 class S i 0 a def init self self i 1 self a append 1 s1 S print s1 i s1 a s2 S print s2 i s2 a 输出将是 1 1 1 1 1
  • 在 Python 中将 int 转换为 ASCII 并返回

    我正在为我的网站制作一个 URL 缩短器 我当前的计划 我愿意接受建议 是使用节点 ID 来生成缩短的 URL 因此 理论上 节点 26 可能是short com z 节点 1 可能是short com a 节点 52 可能是short c
  • 将 Matlab MEX 文件中的函数直接嵌入到 Python 中

    我正在使用专有的 Matlab MEX 文件在 Matlab 中导入一些仿真结果 当然没有可用的源代码 Matlab 的接口实际上非常简单 因为只有一个函数 返回一个 Matlab 结构体 我想知道是否有任何方法可以直接从Python调用M
  • 在Python中计算矩阵乘以其转置(AA^T)的最快方法

    在Python中将矩阵与其转置 AA T 相乘的最快方法是什么 我认为 NumPy SciPy 没有考虑使用例如时涉及的对称性 np dot or np matmul 得到的矩阵总是对称的 所以我可以想象有一个更快的解决方案 None
  • 矩阵求逆 (3,3) python - 硬编码与 numpy.linalg.inv

    对于大量矩阵 我需要计算定义为的距离度量 尽管我确实知道强烈建议不要使用矩阵求逆 但我没有找到解决方法 因此 我尝试通过对矩阵求逆进行硬编码来提高性能 因为所有矩阵的大小均为 3 3 我预计这至少会是一个微小的改进 但事实并非如此 为什么
  • 继承自 NumPy 数组的类如何更改其自身的值?

    我有一个继承自 NumPy n 维数组的简单类 我想要该类的两个方法可以更改该类实例的数组值 其中一种方法应将类实例的数组设置为类实例的列表数据属性的值 另一种方法应将一些列表值附加到类实例的数组中 我不确定如何实现这一点 但我的尝试如下
  • 应用程序的外观 - Py2exe / wxPython

    所以我的问题是我的应用程序的外观和感觉 因为它看起来像一个旧的外观应用程序 它是一个 wxPython 应用程序 在 python 上它运行良好并且看起来不错 但是当我使用 py2exe 将其转换为 exe 时 外观很糟糕 现在我知道如果你
  • 如何访问模板缓存? - 姜戈

    I am 缓存 HTML在几个模板内 例如 cache 900 stats stats endcache 我可以使用以下方式访问缓存吗低级图书馆 例如 html cache get stats 我确实需要对模板缓存进行一些细粒度的控制 有任
  • 用于获取有关 SVN 存储库信息的 Python 库?

    我正在寻找一个可以从 SVN 存储库中提取 至少 以下信息的库 not工作副本 修订号及其作者和提交消息 每个修订版中的更改 添加 删除 修改文件 有Python库可以做到这一点吗 对于作者和提交消息 我可以解析 db revprops 0

随机推荐

  • Inappbrowser回调

    我尝试使用 inappbrowser 登录 facebook 后回拨 但它无法检查电子邮件 姓名等 这是我的代码 Inapp浏览器调用 function onDeviceReady var my client id FBkey my red
  • 在文本文件上书写时,重音符号和特殊字符无法正确显示

    这就是我正在做的事情 我在网站上进行网络爬虫以供个人使用 以复制文本并将书籍的章节设置为文本格式 然后使用另一个程序将其自动转换为 pdf 以将其放入我的云中 一切都很好 直到发生这种情况 特殊字符无法正确复制 例如重音在文本文件上显示为
  • 自旋锁在单处理器单核架构中有用吗?

    我对自旋锁的功能感到困惑 自旋锁用于阻止进程重新调度 然而 在只有一个核心的机器上 使用自旋锁有用吗 防止上下文切换 您的观察结果很好 在单处理器系统上 旋转等待资源是没有意义的 因为您最好尽早切换线程 互斥体和信号量正是这样做的 在多处理
  • 如何使用 Laravel 4 Eloquent 连接列?

    我有一张桌子叫tenantdetails其中包含 Tenant Id First Name Last Name 我想找回First Name and Last Name通过 MySQL 的串联功能作为一列 所以我写在我的controller
  • java.lang.IllegalArgumentException:未找到属性类的 Setter

    我想实现一个带有行编辑的表格 I found 在展示柜中 但我每次都会收到此错误 javax servlet ServletException 找不到属性类的 Setter java lang IllegalArgumentExceptio
  • 如何使用代码“约定”映射来忽略属性映射

    有什么方法可以避免使用 NHibernate 3 2 使用代码约定映射来映射属性吗 默认情况下 所有属性都会被映射 2 作为复制粘贴 IsPersistent 属性默认实现的替代方案 它可以通过反射重用 var mapper new Con
  • 如何对重新采样的音频数据进行双三次(或其他非线性)插值?

    我正在编写一些以不同速度播放 WAV 文件的代码 以便波形要么更慢 音调更低 要么更快 音调更高 我目前正在使用简单的线性插值 如下所示 int newlength int Math Round rawdata Length lengthM
  • PHP NuSoap 中的复杂类型

    我正在使用 PHP 中的 NuSoap 库构建一个 Web 服务 我的 Web 服务将充当客户端和供应商现有的 Web 服务之间的中间层 因此 客户端不是直接连接到供应商 而是连接到我的 Web 服务 我的 Web 服务连接到供应商并获取响
  • 在自己的构造函数中调用 thread.start() [重复]

    这个问题在这里已经有答案了 线程在自己的构造函数中调用 this start 是否合法 如果是的话 这会导致什么潜在问题 我知道在构造函数运行完成之前该对象不会完全初始化 但除此之外还有其他问题吗 出于内存安全的原因 您不应从其构造函数内向
  • VS2008 jQuery Intellisense 不工作 - (jquery-1.4.1.js)

    我在谷歌上搜索过 遵循 scottguthrie 的文章 也在此处寻找解决方案 但无济于事 我的环境由 VS2008 SP1 组成 包括 JQuery intellisense 的修补程序 我已经从 jquery 网站下载了 jquery
  • GestureDetector.onTouchEvent 中的 NullPointerException

    我有一个在 onTouch 中使用 GestureDetector 的活动 在我的布局中 我还有一个实现 onClickListener 的视图 在 Android ICS 上 我在处理 TouchEvent 时收到 NullPointer
  • 在 Swift 中使用 Container View 进行委托

    我正在为 iPad Pro 开发一个应用程序 在这个应用程序中 containerView用于添加额外的views并与他们互动 首先 我创建了一个协议 protocol DataViewDelegate func setTouch touc
  • Python 中基于收益的协程与带有 @asyncio.coroutine 和 @types.coroutine 装饰器的协程有何不同?

    我一直在尝试理解异步编程 尤其是 Python 中的异步编程 我知道 asyncio 是基于事件循环构建的 该事件循环安排协程的执行 但我已经阅读了几种定义协程的不同方法 并且我很困惑它们如何相互关联 I read 本文 http masn
  • 从批处理文件调用脚本时如何指定开关参数

    我有一个脚本foo ps1和一个批处理文件foo cmd用于通过双击文件资源管理器中的 cmd 文件来启动脚本 该脚本接受一个开关参数 但我不知道如何提供这种参数 简单的参数就可以了 Foo ps1 param Parameter Swit
  • 如何使用 Smack 通过 XMPP 设置/获取配置文件数据

    我正在 Android 上使用 Smack 库开发 XMPP 客户端 花名册 消息 状态等内容运行得很好 然而 我没有找到一种方法来存储额外的个人资料信息 用户图片 狗的名字 我从谷歌搜索中看到的唯一方法是使用 VCard 但它根本不起作用
  • 通过 Homebrew 安装 Vim,并支持 Python 和 Python3

    我想在 Vim 中启用 Python 自动完成功能 所以也许这不是问题 这是我观察到的 First 虚拟环境 https github com kennethreitz python guide blob master docs dev v
  • 带有关闭按钮的自定义对话框

    I want to create a custom dialog with the layout as shown in the picture The cross close button must be on the top right
  • 在 TQuery 结果集中查找记录的最快方法

    我想知道最好的 读 最快的 方法是在 Tquery SQL 语句的结果集中定位记录 到目前为止 我正在使用 TQuery Locate 如果我是对的 这是唯一可用于在结果集中搜索的语句 那么我们该如何优化呢 我有一些想法 但还没有时间在大型
  • 使用 CSS 在文本末尾添加短斜线下划线

    当您将鼠标悬停在菜单项上时 我想给它们一个很好的下划线效果 应该有一条与下划线文本宽度相同的标准实线 但在该直线的末端应该有一条短的倾斜结束线 平滑地连接到之前的直线部分 The desired effect should be like
  • 在 PyQt5 中,getOpenFileName 不会导致 Pycharm 中弹出文件选择[重复]

    这个问题在这里已经有答案了 使用教程点中的一段示例代码 我无法使用该代码打开文件对话框 我正在使用 Ubuntu MATE 16 04 python 版本 3 7 4 PyQt5 版本 5 13 1 和以下代码 import sys fro