def __init__(self, root): super().__init__(root) self.root = root self.title(m.fullname[m.mode] + " options") self.grab_set() self.focus_set() self.resizable(FALSE, FALSE) placeWindow(self, 720, 350) self["padx"] = 10 self["pady"] = 10 self.parametersF = ParameterFrame(self, "Default parameters") # selection of directories self.fileDirectory = ChooseDirectoryFrame(self, "Default directory for file selection", "FileDirectory", r'{}'.format(os.getcwd()), False) # default time self.timeLabFrame = ttk.Labelframe(self, text = "Default time") self.timeFrame = TimeFrame(self.timeLabFrame, observe = False, loadtime = False) self.timeFrame.grid(row = 0, column = 0) # buttons self._createButtons() # grid of self contents self.parametersF.grid(row = 0, column = 0, columnspan = 2, sticky = (N, W), padx = 4, pady = 2) self.buttonFrame.grid(row = 3, column = 0, columnspan = 2, padx = 3, pady = 6, sticky = (E, W, N, S)) self.timeLabFrame.grid(row = 1, column = 1, padx = 6, pady = 4, sticky = (N, W, E)) self.fileDirectory.grid(row = 1, column = 0, pady = 2, padx = 2, sticky = (E, W))
def __init__(self, root): super().__init__(root) self["padding"] = (10, 10, 12, 12) self.root = root self.fileStorage = self.root.fileStorage self.selectedBatchTime = optionGet("LastBatchTime", [(0, 20)], "list") # zkontrolovat "" # variables self.status = StringVar() self.useBatchTimeVar = BooleanVar() # frames self.parametersF = ParameterFrame(self) self.fileStorageFrame= FileStorageFrame(self) self.saveToFrame = SaveToFrame(self, parent = "processor") self.optionFrame = OptionFrame(self, text = "Options") self.timeLabFrame = ttk.Labelframe(self, text = "Time") self.timeLabFrame.root = self self.timeFrame = TimeFrame(self.timeLabFrame) # buttons self.process = ttk.Button(self, text = "Process Files", command = self.processFun, state = "disabled") self.useBatchTime = ttk.Checkbutton(self.timeLabFrame, text = "Use batch time", variable = self.useBatchTimeVar, command = self.toggledUseBatchTime) self.setBatchTimeBut = ttk.Button(self.timeLabFrame, text = "Set", width = 3, command = self.setBatchTime) # labels self.statusBar = ttk.Label(self, textvariable = self.status) self.modeLab = ttk.Label(self, text = m.fullname[m.mode], font = ("Helvetica", "16")) # adding to grid self.parametersF.grid(column = 0, row = 3, columnspan = 4, sticky = (N, W), padx = 4) self.fileStorageFrame.grid(column = 3, row = 0, pady = 5, padx = 4) self.timeLabFrame.grid(column = 1, row = 5, padx = 30, sticky = (N, W)) self.timeFrame.grid(column = 0, row = 0, columnspan = 2, sticky = (E, W)) self.process.grid(column = 3, row = 7, sticky = (S, E), padx = 4, pady = 3) self.useBatchTime.grid(column = 0, row = 1, pady = 5) self.setBatchTimeBut.grid(column = 1, row = 1, pady = 5) self.statusBar.grid(column = 0, row = 7, columnspan = 3, sticky = (N, S, E, W), padx = 6, pady = 3) self.modeLab.grid(column = 0, row = 0) self.saveToFrame.grid(column = 1, row = 1, columnspan = 3, sticky = (N, S, E, W), padx = 6, pady = 2) self.optionFrame.grid(column = 0, row = 5, sticky = (N, E), padx = 6) # what should be enlarged self.columnconfigure(2, weight = 1) self.rowconfigure(2, weight = 3) self.rowconfigure(4, weight = 2) self.rowconfigure(6, weight = 2)
def __init__(self, root): super().__init__(root) self["padding"] = (10, 10, 12, 12) self.root = root # potreba pouze pro progressbar # variables self.status = StringVar() # frames self.parametersF = ParameterFrame(self) self.fileStorageFrame = FileStorageFrame(self) self.saveToFrame = SaveToFrame(self, parent="processor") self.timeFrame = TimeFrame(self) self.optionFrame = OptionFrame(self, text="Options") # buttons self.process = ttk.Button(self, text="Process Files", command=self.processFun, state="disabled") # labels self.statusBar = ttk.Label(self, textvariable=self.status) # adding to grid self.parametersF.grid(column=0, row=3, columnspan=4, sticky=(N, W), padx=4) self.fileStorageFrame.grid(column=3, row=0, pady=5, padx=4) self.timeFrame.grid(column=1, row=5, padx=30, pady=15, sticky=(N, W)) self.process.grid(column=3, row=7, sticky=(S, E), padx=4, pady=3) self.statusBar.grid(column=0, row=7, columnspan=3, sticky=(N, S, E, W), padx=6, pady=3) self.saveToFrame.grid(column=1, row=1, columnspan=3, sticky=(N, S, E, W), padx=6, pady=2) self.optionFrame.grid(column=0, row=5, sticky=(N, E), padx=6) # what should be enlarged self.columnconfigure(2, weight=1) self.rowconfigure(2, weight=3) self.rowconfigure(4, weight=2) self.rowconfigure(6, weight=2)
def main(): import os.path import os from filestorage import FileStorage, recognizeFiles testGUI = Tk() testGUI.fileStorage = FileStorage() testGUI.timeFrame = TimeFrame(testGUI) testingDir = os.path.join(os.getcwd(), "TestingFiles") files = recognizeFiles( [os.path.join(testingDir, file) for file in os.listdir(testingDir)]) testGUI.fileStorage.addFiles(files) testGUI.fileStorage.tag(files[1][1]) testGUI.showtracks = ShowTracks(testGUI, files[1], files[1][1]) testGUI.showtracks.grid() testGUI.showtracks.controlled = True testGUI.wm_withdraw() testGUI.mainloop()
def __init__(self, root): super().__init__(root) self.title("Options") self.grab_set() self.focus_set() self.resizable(FALSE, FALSE) placeWindow(self, 824, 844) self["padx"] = 10 self["pady"] = 10 self.parametersF = ParameterFrame(self, "Default parameters") # default filetype of processor output self.fileTypeVar = StringVar() self.fileTypeVar.set( optionGet("DefProcessOutputFileType", ".txt", "str")) self.fileTypeFrame = ttk.Labelframe(self, text="Default output filetype") self.txtRadioBut = ttk.Radiobutton(self.fileTypeFrame, text=".txt", variable=self.fileTypeVar, value=".txt") self.csvRadioBut = ttk.Radiobutton(self.fileTypeFrame, text=".csv", variable=self.fileTypeVar, value=".csv") self.txtRadioBut.grid(row=1, column=0, padx=2, pady=2, sticky=W) self.csvRadioBut.grid(row=0, column=0, padx=2, pady=2, sticky=W) # output separator self.separatorVar = StringVar() self.separatorVar.set(optionGet("ResultSeparator", ",", "str")) self.separatorFrame = ttk.Labelframe(self, text="Result separator") self.commaRadioBut = ttk.Radiobutton(self.separatorFrame, text="Comma", variable=self.separatorVar, value=",") self.semicolonRadioBut = ttk.Radiobutton(self.separatorFrame, text="Semicolon", variable=self.separatorVar, value=";") self.tabRadioBut = ttk.Radiobutton(self.separatorFrame, text="Tab", variable=self.separatorVar, value="\t") self.commaRadioBut.grid(row=0, padx=2, pady=2, sticky=W) self.semicolonRadioBut.grid(row=1, padx=2, pady=2, sticky=W) self.tabRadioBut.grid(row=2, padx=2, pady=2, sticky=W) # save filename as full path self.saveFilenameAs = RadioFrame( self, text="Save (show) filename as:", optionName="SaveFullPath", default="Basename", options=["Basename", "Full path", "Unique path"]) # selection of directories self.directoriesFrame = ttk.Frame(self) self.directoriesFrame.columnconfigure(0, weight=1) self.directoryOptions = [ ("Default directory for file selection", "FileDirectory", os.getcwd()), ("Default directory for results", "ResultDirectory", os.getcwd()), ("Directory for saving of processing logs", "LogDirectory", os.path.join(os.getcwd(), "Stuff", "Logs")), ("Directory for images", "ImageDirectory", os.getcwd()), ("Directory for saving of selected files", "SelectedFilesDirectory", os.path.join(os.getcwd(), "Stuff", "Selected files")) ] for count, option in enumerate(self.directoryOptions): exec( """self.{1} = ChooseDirectoryFrame(self.directoriesFrame, '{0}', '{1}', \ r'{2}')""".format(*option)) exec( "self.{}.grid(row = {}, column = 0, pady = 2, padx = 2, sticky = (E, W))" .format(option[1], count)) # default time self.timeLabFrame = ttk.Labelframe(self, text="Default time") self.timeFrame = TimeFrame(self.timeLabFrame) self.timeFrame.grid(row=0, column=0) # processor options self.processorOptions = OptionFrame(self, text="Default process options") # checking messages self.messageCheckingFrame = ttk.Labelframe( self, text="Messages and new versions") self.messageCheckingVar = BooleanVar() self.messageCheckingVar.set(optionGet("CheckMessages", True, "bool")) self.messageCheckingChB = ttk.Checkbutton( self.messageCheckingFrame, variable=self.messageCheckingVar, onvalue=True, offvalue=False, text="Check messages and new versions") self.messageCheckingChB.grid(column=0, row=0) # buttons self.buttonFrame = ttk.Frame(self) self.buttonFrame.columnconfigure(1, weight=1) self.saveBut = ttk.Button(self.buttonFrame, text="Save", command=self.saveFun) self.okBut = ttk.Button(self.buttonFrame, text="Ok", command=self.okFun) self.cancelBut = ttk.Button(self.buttonFrame, text="Cancel", command=self.cancelFun) self.saveBut.grid(column=0, row=0, padx=3, pady=2, sticky=(W)) self.okBut.grid(column=1, row=0, padx=3, pady=2) self.cancelBut.grid(column=2, row=0, padx=3, pady=2, sticky=(E)) # grid of self contents self.parametersF.grid(row=0, column=0, columnspan=4, sticky=(N, W), padx=4, pady=2) self.fileTypeFrame.grid(row=2, column=0, columnspan=2, padx=3, pady=4, sticky=(W, N, E, S)) self.buttonFrame.grid(row = 8, column = 0, columnspan = 4, padx = 3, pady = 4,\ sticky = (E, W, N, S)) self.separatorFrame.grid(row=3, column=0, columnspan=2, padx=3, pady=4, sticky=(W, N, E)) self.saveFilenameAs.grid(row=2, column=2, padx=3, pady=4, sticky=(N, W, E)) self.directoriesFrame.grid(row=5, column=0, columnspan=5, padx=3, pady=8, sticky=(N, W, E)) self.timeLabFrame.grid(row=2, column=3, padx=3, pady=4, sticky=(N, W)) self.processorOptions.grid(row=3, column=2, pady=4, padx=4, sticky=(N, W), columnspan=2, rowspan=2) self.messageCheckingFrame.grid(row=4, column=0, columnspan=2, sticky=(N, W), pady=3, padx=3)
def __init__(self, root): super().__init__(root) self["padding"] = (7, 7, 9, 9) self.root = root self.fileStorage = self.root.fileStorage # file selection self.saveToVar = StringVar() self.saveToVar.set(True) self.fileStorageFrame = FileStorageFrame(self) self.fileStorageFrame.grid(column = 1, row = 0, columnspan = 2, sticky = (N, S, E, W), pady = 5, padx = 2) # statusbar self.status = StringVar() self.statusBar = ttk.Label(self, textvariable = self.status) self.statusBar.grid(column = 0, row = 4, columnspan = 2, sticky = (S, E, W)) # control button self.process = ttk.Button(self, text = "Control", command = self.controlFun) self.process.grid(column = 2, row = 4, sticky = E) self.process.state(["disabled"]) # report self.reportFrame = ttk.LabelFrame(self, text = "Report") self.reportFrame.grid(column = 0, row = 0, rowspan = 4, sticky = (N, S, E, W), padx = 5) self.reportFrame.columnconfigure(0, weight = 1) self.reportFrame.rowconfigure(0, weight = 1) self.upFrame = ttk.Frame(self.reportFrame) self.upFrame.grid(column = 0, row = 0, columnspan = 2, sticky = (N, S, E, W)) self.upFrame.columnconfigure(0, weight = 1) self.upFrame.rowconfigure(0, weight = 1) self.contentTree = ttk.Treeview(self.upFrame, selectmode = "none") self.contentTree.grid(column = 0, row = 0, sticky = (N, S, E, W)) self.contentTree["columns"] = ("description", "importance") self.contentTree.column("#0", width = 250, anchor = "w") self.contentTree.heading("#0", text = "Problem", command = self.orderReportByNames) self.contentTree.column("description", width = 200, anchor = "e") self.contentTree.heading("description", text = "Description", command = self.orderReportByResults) self.contentTree.column("importance", width = 60, anchor = "e") self.contentTree.heading("importance", text = "Importance", command = self.orderReportByImportance) self.scrollbar = ttk.Scrollbar(self.upFrame, orient = VERTICAL, command = self.contentTree.yview) self.scrollbar.grid(column = 1, row = 0, sticky = (N, S, E)) self.contentTree.configure(yscrollcommand = self.scrollbar.set) self.saveToFrame = SaveToFrame(self.reportFrame, label = False) self.saveToFrame.grid(column = 0, row = 1, sticky = (E, W)) self.saveBut = ttk.Button(self.reportFrame, text = "Save", command = self.saveFun) self.saveBut.grid(column = 1, row = 1, sticky = E, padx = 2) self.controlReport = ControlReport() #! self.contentTree.tag_bind("file", "<Double-1>", lambda e: self.treeDoubleClick(e)) # method selection frame self.controlFrame = ControlFrame(self) self.controlFrame.grid(column = 1, row = 1, columnspan = 2, sticky = (N, W), padx = 10, pady = 55) # time frame self.timeFrame = TimeFrame(self) self.timeFrame.grid(column = 1, row = 2, columnspan = 2, sticky = (N, W), padx = 10) self.columnconfigure(0, weight = 1) self.rowconfigure(2, weight = 1)
def __init__(self, root, files, controlled=False): super().__init__(root) self.rowconfigure(0, weight=1) self.allFiles = files # used when un-selecting files self.files = files # currently diplayed files self.controlled = controlled # True if FileTree called from controller self.root = root self.fileStorage = self.root.fileStorage self.index = self.root.index # which file is selected when the FileTree is initialized self.usedProblemOrder = -1 # by which method is the tree ordered (index) # tree self.treeFrame = ttk.Frame(self) self.treeFrame.grid(column=0, row=0, columnspan=3, sticky=(N, S, E, W)) self.treeFrame.rowconfigure(0, weight=1) self.treeFrame.columnconfigure(0, weight=1) self.tree = ttk.Treeview(self.treeFrame, selectmode="browse", height=20) self.tree.grid(column=0, row=0, sticky=(N, S, E, W)) if self.controlled: columns = ("problem", "tag") else: columns = ("tag") self.tree["columns"] = columns self.tree.column("#0", width=240, anchor="w") self.tree.heading("#0", text="File", command=self.orderByNames) self.tree.column("tag", width=40, anchor="center") self.tree.heading("tag", text="Tag", command=self.orderByTag) if self.controlled: self.tree.column("problem", width=160, anchor="e") self.tree.heading("problem", text="Problems", command=self.orderByProblem) self.scrollbar = ttk.Scrollbar(self.treeFrame, orient=VERTICAL, command=self.tree.yview) self.scrollbar.grid(column=1, row=0, sticky=(N, S, E)) self.tree.configure(yscrollcommand=self.scrollbar.set) self.tree.bind("<1>", lambda e: self.click(e)) self.tree.bind("<3>", lambda e: self.popUp(e)) self.tree.tag_configure("comment", background=commentColor()) self.drawTree() # bottom frame self.bottomFrame = ttk.Frame(self) self.bottomFrame.grid(column=0, row=1, columnspan=2) self.bottomFrame.columnconfigure(3, weight=1) self.bottomFrame.rowconfigure(1, weight=1) # previous and next buttons self.fileLabFrame = ttk.Labelframe(self.bottomFrame, text="File") self.fileLabFrame.grid(column=0, row=0, sticky=(N, W), pady=3, padx=1) self.previousBut = ttk.Button(self.fileLabFrame, text="Previous", command=self.previousFun) self.previousBut.grid(column=0, row=0, padx=3) self.nextBut = ttk.Button(self.fileLabFrame, text="Next", command=self.nextFun) self.nextBut.grid(column=1, row=0, padx=3) # tag buttons self.tagLabFrame = ttk.Labelframe(self.bottomFrame, text="Tagging") self.tagLabFrame.grid(column=0, row=1, sticky=(N, W), rowspan=2, padx=1, pady=4) self.tagBut = ttk.Button(self.tagLabFrame, text="Tag file", command=self.tagFun) self.tagBut.grid(column=1, row=1, padx=3) self.checkTag() self.tagAllBut = ttk.Button(self.tagLabFrame, text="Tag all", command=self.tagAllFun) self.tagAllBut.grid(column=2, row=1, padx=3) self.untagAllBut = ttk.Button(self.tagLabFrame, text="Remove all tags", command=self.untagAllFun) self.untagAllBut.grid(column=3, row=1, padx=3) # time frame self.timeLabFrame = ttk.Labelframe(self.bottomFrame, text="Time") self.timeLabFrame.grid(column=3, row=0, rowspan=2, sticky=N, pady=3) self.timeLabFrame.root = self.root self.timeFrame = TimeFrame(self.timeLabFrame, onChange=True, observe=False) self.timeFrame.grid(column=0, row=0) self.timeFrame.timeVar.set(TimeFrame.stop) self.timeFrame.startTimeVar.set(TimeFrame.start) # remove reflections checkbutton self.removeReflectionsVar = BooleanVar() self.removeReflectionsVar.set(False) self.removeReflections = ttk.Checkbutton( self.bottomFrame, text="Remove reflections", variable=self.removeReflectionsVar, command=self.toggleReflections) self.removeReflections.grid(column=2, row=2, padx=7, pady=5, sticky=(N, W), columnspan=2) # frame radiobuttons self.frameFrame = ttk.Labelframe(self.bottomFrame, text="Frame") self.frameFrame.grid(column=2, row=0, padx=5, rowspan=2, pady=3, sticky=N) self.frameVar = StringVar() self.frameVar.set("arena") self.arenaFrameRB = ttk.Radiobutton(self.frameFrame, text="Arena", variable=self.frameVar, value="arena", command=self.toggleFrame) self.arenaFrameRB.grid(column=0, row=0, pady=2) self.roomFrameRB = ttk.Radiobutton(self.frameFrame, text="Room", variable=self.frameVar, value="room", command=self.toggleFrame) self.roomFrameRB.grid(column=0, row=1, pady=2)
def __init__(self, root): super().__init__(root) self.root = root placeWindow(self, 598, 208) self.title = "Set batch time" self.grab_set() self.focus_set() self.resizable(False, False) self.batchTime = optionGet("LastBatchTime", "[(0, 20)]", "list") self.developer = optionGet("Developer", False, 'bool') self.manualChangeEnabled = self.developer # frames self.buttonFrame = ttk.Frame(self) self.removeFrame = ttk.Frame(self) self.timeFrame = TimeFrame(self, observe=False) # buttons self.okBut = ttk.Button(self, text="Ok", command=self.okFun) self.closeBut = ttk.Button(self, text="Close", command=self.destroy) self.addBut = ttk.Button(self.buttonFrame, text="Add", command=self.addFun, width=8) self.removeLastBut = ttk.Button(self.removeFrame, text="Remove last", command=self.removeLastFun) self.resetBut = ttk.Button(self.removeFrame, text="Reset", command=self.resetFun) self.clearBut = ttk.Button(self.removeFrame, text="Clear", command=self.clearFun) # text self.text = Text(self, height=5, wrap="word", width=73) self.text.insert("1.0", self.batchTime) self.text.bind("<3>", lambda e: self.popUp(e)) if not self.developer: self.text["state"] = "disabled" self.text["background"] = self._color() else: self.addBut["state"] = "disabled" self.removeLastBut["state"] = "disabled" # adding to grid self.buttonFrame.grid(column=1, row=0, sticky=W, pady=2) self.removeFrame.grid(column=3, row=0, pady=3) self.timeFrame.grid(column=0, row=0) self.okBut.grid(column=3, row=2, pady=2) self.closeBut.grid(column=2, row=2, pady=2) self.addBut.grid(column=0, row=2, columnspan=2) self.removeLastBut.grid(column=0, row=0, pady=0) self.resetBut.grid(column=0, row=1, pady=2) self.clearBut.grid(column=0, row=2, pady=0) self.text.grid(column=0, row=1, columnspan=4, pady=5, padx=5) # +x buttons ttk.Button(self.buttonFrame, text="+1", command=lambda: self.addTime(1), width=3).grid(column=0, row=0) ttk.Button(self.buttonFrame, text="+2", command=lambda: self.addTime(2), width=3).grid(column=1, row=0) ttk.Button(self.buttonFrame, text="+5", command=lambda: self.addTime(5), width=3).grid(column=0, row=1) ttk.Button(self.buttonFrame, text="+10", command=lambda: self.addTime(10), width=3).grid(column=1, row=1)