Manipulando arquivo aberto (tipo mime) com Python [closed]

1

Eu criei um arquivo mymime.xml

<?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>

e um arquivo 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

Agora, quando clico com o botão direito em um arquivo que tem meu formato final, ele sugere a abertura com MyApp, que é o comportamento que eu estava procurando! Mas no código python3 (estou usando o PyQt5), como faço para usar o argumento de carregamento quando há um arquivo carregado assim? (clique com o botão direito do mouse ou clique duas vezes em um arquivo. meu formato)

    
por eri0o 14.06.2016 / 02:28

1 resposta

1

Ok, resolvi isso com o seguinte código:

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)

Basicamente, na abertura, o QApplication precisa ler os argumentos argv , e remove qualquer coisa relacionada ao Qt. Do que eu passar os argumentos restantes para o meu aplicativo ("MainWindow"), que irá lidar com a lista de verificação de itens que correspondem ao meu formato e irá lançar essa lista para a minha função que lida com arquivos de abertura.

    
por eri0o 16.06.2016 / 04:09