2016-06-21 7 views
0

Ich habe einen Text-Widget, das eine Spalte von Daten ‚dwg‘ zeigt, auf jede dieser Daten klicken sollte eine externe PDF-Anwendung öffnen. Ich habe ein Problem mit der Schleife, da das Tag nicht funktioniert und anschließend die Datei geöffnet wird. Wo bin ich falsch gelaufen?Text-Tagging und Looping-Datei mit externen Anwendung zu öffnen

def displayFile(): 
    for f in os.listdir("c:\\pdf"): 
     if f.endswith(".pdf"): 
      pdflink="dwg" + f 
      path="c:\\pdf" 
      self.textbox.insert(END,f + "\n", "dwg") 
      self.textbox.tag_configure(pdflink, foreground="#0078D7", underline=False)    
      self.textbox.tag_bind(pdflink, "<Double-Button-1>", lambda event, filename = path+'/'+ f: subprocess.run(['c:\program files\sumatraPDF\sumatraPDF',filename])) 

Antwort

1

Der Tag, das Sie mit dem Hinzufügen von Text sind ist "dwg", aber der Tag Sie konfigurieren und Bindung ist "dwg"+f.

+0

was ich versuche (und möglicherweise nicht richtig) ist, ein PDF-Suffix am Ende der "DWG" -Daten hinzuzufügen. Der Grund dafür ist, dass die 'dwg'-Daten mit den PDF-Dateien im Verzeichnis c: \\ pdf übereinstimmen. zB zeigt mein Text-Widget 3 Datenzeilen mit verschiedenen 'DWG'-Daten an, wie zB abcd oder efgh oder wxyz. Ich möchte in der Lage sein, ein .pdf Suffix dh abcd.pdf hinzuzufügen und dann meine externe Anwendung zu öffnen. – LMP2016

+0

Ja, das sollte richtig sein - Sie markieren nur den Text, den Sie einfügen. Das Tag, das darauf geht, ist "dwg", aber Sie binden das Open-File-Lambda nicht an das "dwg" -Tag. Sie binden das Open-File-Lambda an das "dwg" + f-Tag (d. H "dwgmyfilename.pdf"), die nicht im Text enthalten ist. Holen Sie sich das Clicky-Tag und das eingefügte Tag passend, und es sollte helfen – Delioth

+0

danke @delioth, ich habe irgendwie funktioniert, leider öffnet es die gleiche PDF für alles, was ich klicke, aber das ist außerhalb des Umfangs meiner ursprünglichen Frage :) – LMP2016

Verwandte Themen