G35EIIcompatibility-tool/linux-gui.py

57 lines
2.2 KiB
Python
Executable File

#! /usr/bin/python3
import tkinter as tk
from tkinter import ttk
import tkinter.filedialog
import tkinter.messagebox
import subprocess
class App(tk.Tk):
def __init__(self):
super().__init__()
self.title('MonochromeLib add-in converter win64')
self.file = tk.StringVar()
self.gui_fileframe = tk.Frame(self)
self.gui_fileframe.grid(row=0, column=0, columnspan=2, sticky="news", pady=5, padx=5)
self.gui_filename_label = tk.Label(self.gui_fileframe, text="filepath:")
self.gui_filename_label.grid(row=0, column=0, sticky="news")
self.gui_filename = tk.Entry(self.gui_fileframe, width=50)
self.gui_filename.grid(row=0, column=1, sticky="news")
self.gui_open = tk.Button(command=self.app_open_addin, text="open add-in",)
self.gui_open.grid(row=1, column=0)
self.gui_convert = tk.Button(command=self.app_convert, text="convert...",)
self.gui_convert.grid(row=1, column=1)
def app_open_addin(self):
filename = tk.filedialog.askopenfilename(title="Open a File", filetypes=[('casio add-in', '.g1a'), ('all files', '.*')])
self.gui_filename.delete(0, tk.END)
self.gui_filename.insert(0, filename)
return filename
def app_convert(self):
ex = tk.filedialog.asksaveasfilename(title="Save Add-in", filetypes=[('casio add-in', '.g1a'), ('all files', '.*')])
process = subprocess.Popen("./G35EIIcompatibility-tool.elf " +
self.gui_filename.get() +
" " + ex, shell=True, stdout=subprocess.PIPE)
process.wait()
if process.returncode == 0:
tk.messagebox.showinfo(None, "add-in converted!")
elif process.returncode == 4:
tk.messagebox.showwarning(None, "this file are: \n-not a add-in\n-already a converted add-in\n-not a monochromelib add-in")
elif process.returncode == 2:
tk.messagebox.showerror(None, "no output(export) file!")
elif process.returncode == 3:
tk.messagebox.showerror(None, "cannot open file!")
else:
tk.messagebox.showerror(None, "error!\nerrorcode: "+str(process.returncode))
if __name__ == "__main__":
app = App()
app.mainloop()