【问题标题】:Open file with pyQt用 pyQt 打开文件
【发布时间】:2011-05-18 21:51:27
【问题描述】:

有一个按钮。
单击时,文件C:\file.txt 应使用默认文本编辑器打开(就像双击一样)。
在pyQt中可能吗?按下按钮 -> 文件已打开。
我所能谷歌的只是对话框,但我不需要它们。

file = 'C:\file.txt'
widget.connect(button, QtCore.SIGNAL('clicked()'), ????)

如何做到这一点?

【问题讨论】:

  • 我认为你离你想要的东西比你预期的要远得多。你有一个 PyQt GUI 功能,这只是一个示例 sn-p,还是你的整个程序?

标签: python pyqt


【解决方案1】:
def openFile(file):
    if sys.platform == 'linux2':
        subprocess.call(["xdg-open", file])
    else:
        os.startfile(file)

并将您的第二行编辑为:

widget.connect(button, QtCore.SIGNAL('clicked()'), openFile(file))

How to open a file with the standard application?复制的文件打开代码

【讨论】:

  • 为什么我运行脚本时文件启动,没有程序(按钮)显示? snipt.org/xJng 。它肯定与widget.connect 线有联系
  • &乔:源行connect(..., openFile(file))会调用 openFile。使用lambda: openFile(file) 连接到调用openFile 的函数,而不是连接到openFile() 返回的任何函数。 :)
  • 刚开始新问题 - stackoverflow.com/questions/6046362/… 。我转达没有耐心)lambda: 正在工作,但它现在对我来说是一个黑匣子。
  • @Jacob:我试过你的代码,但它给出了错误:NameError: global name 'subprocess' is not defined,请建议
  • @lkkkk,使用前请先导入子进程
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-18
  • 2013-01-23
  • 2015-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多