示例#1
0
    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))
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
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()
示例#5
0
    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)
示例#6
0
    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)
示例#7
0
    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)
示例#8
0
    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)