我创建了一个文件我的MIME配置文件
<?xml version='1.0' encoding='utf-8'?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="text/myapp">
<comment>my format</comment>
<glob pattern="*.myformat"/>
</mime-type>
</mime-info>
和一个文件myapp.desktop
[Desktop Entry]
Name=MyApp
GenericName=My Generic Name
Comment=a comment
Exec=myapp
Icon=myicon
Terminal=false
Type=Application
Categories=Development;
MimeType=text/myapp;
Name[en_US]=MyApp
现在,当我右键单击以 myformat 结尾的文件时,它建议使用 MyApp 打开,这正是我想要的行为!但是在 python3 代码上(我使用的是 PyQt5),当有这样的文件加载时,我该如何获取加载参数?(右键单击打开或双击 file.myformat)
答案1
好的,我用以下代码解决了这个问题:
class MainWindow(QMainWindow):
def __init__(self, filelist, **kwargs):
openFileAtStart(filelist)
def openFileAtStart(self, filelist):
matching = [s for s in filelist if ".myformat" in s]
if len(matching) > 0:
self.openFileByName(matching)
if __name__ == "__main__":
from sys import argv, exit
from PyQt5.QtWidgets import QApplication
a = QApplication(argv)
MainWindow(argv)
基本上,在打开时,QApplication 需要读取argv参数,并删除与 Qt 相关的所有内容。然后我将剩余的参数传递给我的应用程序(“MainWindow”),它将处理列表检查以查找与我的格式匹配的项目,并将此列表抛出到处理打开文件的函数。