PyQt 文件浏览 - 设置默认选项?

2024-02-12

我一直在尝试在我正在设计的 GUI 中实现一个文件浏览小部件。我正在使用 QFileDialog 模块,它工作得很好 - 我可以使用以下代码行浏览和保存文件:

filenames = QFileDialog.getOpenFileName()

我的小部件设置了一个 QLineEdit(我想显示所选文件的名称)和一个 QPushButton(我想启动上面的代码行)。但是,我想知道是否有办法设置“默认”选项。如果未单击浏览按钮,我希望该文件如下:

filenames = str(glob.glob('*.npy')[0])

它将被保存为相关文件名并显示在我的 LineEdit 中。我的问题是尝试在 LineEdit 中显示不同的文件名,具体取决于是否单击了浏览按钮。如果已单击它,我希望 LineEdit 显示用户选择的文件而不是默认选项。以下是我的重新翻译函数中适用的代码行:

def retranslateUi(self, ROIGUI):
    self.lineEdit.setText(_translate("ROIGUI", self.fileSelect(False), None))
    self.Browse.setText(_translate("ROIGUI", "Browse...", None))
    self.Browse.clicked.connect(self.fileSelect(True))

其中链接到以下函数。正如您所看到的,这目前无法正常工作,因为在 LineEdit 中,tripped 始终为 False。非常愚蠢。

def fileSelect(self,tripped):
    filenames = str(glob.glob('*.npy')[0])
    if tripped==True:
        filenames = QFileDialog.getOpenFileName()
        self.lineEdit.setText(_translate("ROIGUI", filenames, None))
    return filenames

我一直在尝试不同的方法来使其工作,但我尝试的所有方法要么(a)在文件浏览后从不更新我的 LineEdit,要么(b)立即运行文件浏览而不使用默认选项。想法?我确信有一种我没有看到的方法可以做到这一点。

先感谢您。

编辑添加

我想我已经解决了大部分问题 - 我的浏览按钮现在通过 ButtonGroup 连接到一个整数,所以我的 fileSelect 看起来像这样:

def fileSelect(self):
    signal = self.buttonGroup2.checkedId()
    if signal==-1:
        filenames = str(glob.glob('*.npy')[0])
    elif signal==1:
        filenames = QFileDialog.getOpenFileName()
        if (filenames.isNull()):
            filenames = str(glob.glob('*.npy')[0])
    return filenames

我的“重新翻译”浏览按钮和 lineEdit 如下所示:

self.lineEdit.setText(_translate("ROIGUI", str(self.fileSelect()), None))

self.Browse.clicked.connect(self.fileSelect)

我唯一的问题是更新我的 lineEdit 的文本;虽然使用的文件本身在使用“浏览”选择后会更新,但文本本身不会更新。帮助?


如果选择取消按钮QFileDialog文件名变量将为空QString所以,你可以:

filenames = QFileDialog.getOpenFileName()
if (filenames.isNull()):
    self.lineEdit.setText(_translate("ROIGUI", filenames, None))
else:
    # The alternative code. Set the default value here to the QLineEdit.

参考:QFileDialog.getOpenFileName() http://QFileDialog.getOpenFileName()

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

PyQt 文件浏览 - 设置默认选项? 的相关文章

随机推荐

  • 列出外部进程正在运行的线程

    有时我们的客户会使用 幽灵 应用程序 这意味着当我们在很长时间 例如 72 小时以上 后关闭应用程序时 我们有时会看到应用程序在视觉上已关闭但仍在进程列表中 由于我们无法轻松重现 因此我们想知道哪个线程仍在运行 所以我们想提供一个非常小的工
  • 如何解决循环依赖

    我有3项服务 auth service ts account service ts http service ts 当用户注册时 我应该创建新帐户 因此我将 account service ts 导入到 auth service ts 我应
  • 在 Python 3 中拼出日期的每个单词

    在Python 3中 我想将2018 01 01更改为 2018年一月一日 我查看了格式指南Python 日期时间文档 https docs python org 3 library datetime html strftime and s
  • Visual Studio 2012:我可以在远程调试器中启动 .NET 4.5 应用程序(而不仅仅是附加)吗?

    平台 Visual Studio 2012 C WPF应用程序 Visual Studio 2012 远程调试器工具 我在 64 位系统上的 NET 4 5 应用程序在很早的阶段就崩溃了 https stackoverflow com qu
  • 使用getline后如何让cin工作?

    因此 我使用 cin getline str 10 h 读取了一个字符串 如您所见 我使用了自定义分隔符 h 并且希望读取最多 9 个字符 完成此操作后 我使用 cin gt gt n 将一个整数读入我的 int 变量 n 中 includ
  • 当用 R 抓取网页并且它没有价值时如何报告 NA?

    我从 booking com 的页面上抓取数据并创建数据框 我注意到并非所有酒店都有评级 我尝试过这个例如 Got the elements from Inspect code of the page titles page lt page
  • 哪些错误事件不会触发window.onerror?

    MDN 陈述如下 https developer mozilla org en US docs DOM window onerror 一些 许多error事件不触发window onerror 你必须 专门听他们的 这很好 但是哪些不调用o
  • 从现在开始 5 秒后用 Java 怎么说?

    我正在看日期文档 http www j2ee me javase 6 docs api java util Date html并试图找出如何表达现在 5 秒 这是一些伪代码 import java util Date public clas
  • 从命令行打开 Chrome

    我有以下批处理文件 echo off REM Starts a chrome browser with multiple tabbed sites C Users UserName AppData Local Google Chrome A
  • 两个 TCP/IP 套接字 send() 请求实际上在一个 TCP 消息中处理

    我的 C 程序中有两个 send 查看wireshark 我意识到它们是作为一条 TCP IP 消息发送出去的 我假设这是某种 TCP IP 优化 确定它们足够小 可以一起发送 然而 我正在从头开始重建一个旧程序 并且我正在基于它的 TCP
  • 圣杯。 JSON。他的方法?

    我彻夜未眠寻找有关如何使用的信息JSON in Grails 我找到了信息JSON closure 我们只能使用一种方法 array 没有其他 这是真的吗 下一个小问题 我在这里找到 http www jiramot info mini g
  • 无法在 ruby​​ on Rails 上访问本地主机

    当我运行服务器并转到localhost 3000我收到此错误 ActiveRecord ConnectionNotEstablished 没有带 id 的连接池 主要发现 有问题的代码 activerecord 5 0 0 lib acti
  • 如何在 Symfony 中将实体导出为 CSV?

    我使用以下代码输出 CSV 但运行时出现空白屏幕 基本上我的困惑在于 DoctrineORMQuerySourceIterator 因为我不明白如何正确使用它 我假设我必须列出属性名称 我正在使用索纳塔导出器 https github co
  • 在 Elastic Search 中模拟字段折叠/按字段分组

    Elastic Search 目前 自 0 18 4 起 不支持字段折叠 有没有一个好的方法来模拟这个 以避免N搜索查询 可能不是您正在寻找的答案 但是 据我所知 并且根据this https github com elasticsearc
  • 在 powerbi 中使用相同的过滤器过滤两个表

    我有两个表显示 PowerBI 中的国家 地区数据 一个表包含不同国家 地区的销售数据 另一个表显示每个国家 地区的统计数据 然后我有一个仪表板 其中包含每个表的图表 我想要一个过滤器来过滤两个表中的国家 地区列 即 如果我过滤美国 我将得
  • 编译 32 位二进制文​​件:'__int128' 之前应有非限定 ID

    我正在努力将我的代码移植到 Mac 它可以在我的 64 位 Windows 机器上正常编译 显然我正在使用的库之一 Awesomium 没有编译为 64 位代码 因此我必须将代码编译为 32 位二进制文 件 我在尝试使用 GCC 4 8 编
  • 嵌套组件内的 React.memo 从不调用 areEqual,总是重新渲染

    我突然好奇 React memo 今天的表现如何 看来 React memo 不能在嵌套函数组件中工作 但可以在组件主返回和返回 React memo 组件的嵌套函数中工作 这是预期的行为还是有其他方法使 React memo 与嵌套功能组
  • 用C画形状时用什么?

    我一直遇到一些问题 试图弄清楚 header 对于设法获取屏幕并使用 C 在其中绘制形状很有用 尝试使用 graphics h 但对我不起作用 我想 graphics h 可能应该在 C 中使用 而不是在 C 中使用 我真的不知道 如果有人
  • 接受vertx api中相同键的参数列表

    如何在路由器 GET 方法中接受同一键中的参数列表 例如 我的查询参数名称为 personId 但在 get 请求中 可能会出现多个 列表 personId 如何在 vertx 中处理这个问题 我在中找不到任何这样的方法HttpServer
  • PyQt 文件浏览 - 设置默认选项?

    我一直在尝试在我正在设计的 GUI 中实现一个文件浏览小部件 我正在使用 QFileDialog 模块 它工作得很好 我可以使用以下代码行浏览和保存文件 filenames QFileDialog getOpenFileName 我的小部件