Ejemplo n.º 1
0
def text_view(view_text: str,
              title='TkPy text view',
              geometry=None,
              min_size=None,
              max_size=None,
              base_root=None):
    def Copy():
        copy_text = text.get(tk.SEL_FIRST, tk.SEL_LAST) or text.get(
            0.0, tk.END)
        pyperclip.copy(copy_text)

    root = tk.Toplevel(base_root)
    root.transient(base_root)
    root.title(title)
    root.resizable(0, 0)
    if geometry is not None:
        root.geometry(geometry)
    if min_size:
        root.minsize(*min_size)
    if max_size:
        root.maxsize(max_size)
    text = tk.Text(root)
    ycrollbar = tk.Scrollbar(root)
    Frame = tk.Frame(root)
    CopyButton = ttk.Button(Frame, text='复制', command=Copy)
    CloseButton = ttk.Button(Frame, text='关闭', command=root.destroy)
    text.insert(tk.END, view_text)
    CopyButton.pack(fill=tk.X, expand=True, side=tk.RIGHT)
    CloseButton.pack(fill=tk.X, expand=True, side=tk.LEFT)
    ycrollbar.config(command=text.yview)
    Frame.pack(side=tk.BOTTOM, fill=tk.X, expand=True)
    ycrollbar.pack(side=tk.RIGHT, fill=tk.Y)
    text.pack(fill=tk.BOTH, expand=True)
    text.config(yscrollcommand=ycrollbar.set, state=tk.DISABLED)
    root.mainloop()
    def __createWidgets(self) -> None:
        # <pane>
        self.pane = ttk.PanedWindow(self, orient=tix.HORIZONTAL)
        self.pane.rowconfigure(0, weight=1)
        self.pane.rowconfigure(1, weight=1)
        self.pane.columnconfigure(1, weight=1)
        self.pane.grid(column=0, row=0, sticky=tuple(STICK_HORIZONTAL))

        self.key_label = ttk.Label(self.pane)
        self.key_label["text"] = "Key:"
        self.key_label.grid(column=0, row=0, sticky=tuple(STICK_W))

        self.key_value = tk.StringVar()
        self.key = ttk.Entry(self.pane, textvariable=self.key_value)
        self.key.grid(column=1,
                      row=0,
                      sticky=tuple(STICK_ALL),
                      padx=(5, 2),
                      pady=(1, 2))
        self.key.focus_set()

        self.salt_label = ttk.Label(self.pane)
        self.salt_label["text"] = "Salt:"
        self.salt_label.grid(column=0, row=1, sticky=tuple(STICK_W))

        self.salt_value = tk.StringVar()
        self.salt = ttk.Entry(self.pane, textvariable=self.salt_value)
        self.salt.grid(column=1,
                       row=1,
                       sticky=tuple(STICK_ALL),
                       padx=(5, 2),
                       pady=(2, 1))

        self.button = ttk.Button(self.pane)
        self.button["text"] = "计算!"
        self.button["command"] = self.generate_password
        self.button.grid(column=2,
                         rowspan=2,
                         row=0,
                         sticky=tuple(STICK_VERTICAL),
                         padx=(2, 0))
        # </pane>

        # <scrollpane>
        self.scrollpane = ttk.PanedWindow(self, orient=tix.HORIZONTAL)
        self.scrollpane.grid(column=0, row=1, sticky=tuple(STICK_ALL), padx=5)
        self.scrollpane.columnconfigure(0, weight=1)
        self.scrollpane.rowconfigure(0, weight=1)

        self.text = tix.Text(self.scrollpane, autosep=1)
        self.text.grid(column=0, row=0, sticky=tuple(STICK_ALL))
        self.text['state'] = 'disabled'

        self.scrollbar = ttk.Scrollbar(self.scrollpane,
                                       orient=tix.VERTICAL,
                                       command=self.text.yview)
        self.scrollbar.grid(column=1, row=0, sticky=tuple(STICK_ALL))

        self.text['yscrollcommand'] = self.scrollbar.set
Ejemplo n.º 3
0
    def _createWidgets_(self):
        self.fsFrame = tk.Frame(self.mFrame)
        self.tk_setPalette(background = '#F2D7D5') ##F2D7D5
        self.btQuit = tk.Button(self.mFrame)
        self.btQuit.config(text = 'Завершить', command = self.root.destroy)
        self.btQuit.pack(side =tk.BOTTOM)
        ##self.loadFrame = tk.LabelFrame(self.fsFrame)
        ##self.listBMsg = tk.Listbox(self.loadFrame, relief='flat')

        self.topElemsFrame = tk.Frame(self.fsFrame)
        self.btnLstFrame = tk.LabelFrame(self.topElemsFrame)
        self.smplUnqOptFrame = tk.Frame(self.topElemsFrame)
        
        self.smplUnqOptLabelF = tk.LabelFrame(self.smplUnqOptFrame)
        
        self._lbSmplUnqOptLabelF_ = self.getSubWgts(self.smplUnqOptLabelF, tk._dummyLabel)
        self._lbSmplUnqOptLabelF_.config(text = "Уник. сэмпл.")
        self._frSmplUnqOptLabelF_ = self.getSubWgts(self.smplUnqOptLabelF, tk._dummyFrame)
        
        self.cbIfCutUrl = tk.Checkbutton(self._frSmplUnqOptLabelF_, text = "Сократ. Url в назв. сэмпл.", variable = self._varIfCutUrlInSmpl_)
        
        self.smplThruNum = tk.LabelFrame(self._frSmplUnqOptLabelF_)
        self._lbSmplThruNum_ = self.getSubWgts(self.smplThruNum, tk._dummyLabel)
        self._lbSmplThruNum_.config(text = "Скозн. нумер.")
        self._frSmplThruNum_ = self.getSubWgts(self.smplThruNum, tk._dummyFrame)
        self.smplThruNumCntrl = tk.Radiobutton(self._frSmplThruNum_, text = "Контроллер", variable = self._varRbSmplThruNum_, value = "Controller")
        self.smplThruNumThGr = tk.Radiobutton(self._frSmplThruNum_, text = "ТредГрупп", variable = self._varRbSmplThruNum_, value = "ThreadGroup")
        self.smplThruNumTstPl = tk.Radiobutton(self._frSmplThruNum_, text = "ТестПлан", variable = self._varRbSmplThruNum_, value = "TestPlan")
        self.smplThruNumCntrl.pack(side = tk.TOP, anchor = tk.W)
        self.smplThruNumThGr.pack(side = tk.TOP, anchor = tk.W)
        self.smplThruNumTstPl.pack(side = tk.TOP, anchor = tk.W)
        
        self.cbIfNotRstrUnqInSmpl = tk.Checkbutton(self._frSmplUnqOptLabelF_, text = "Не восст. ориг. назв. сэмпл.", variable = self._varCbIfNotRstrUnqInSmpl_)
        
        self.cbIfCutUrl.pack(side = tk.TOP, anchor = tk.W)
        self.smplThruNum.pack(side = tk.TOP, anchor = tk.W)
        self.cbIfNotRstrUnqInSmpl.pack(side = tk.TOP, anchor = tk.W)
        
        self.smplUnqOptLabelF.pack(anchor = tk.E)
        self.smplUnqOptFrame.config(width = self.smplThruNum.winfo_reqwidth(), padx = 100)
        
        self.paramVolatilFrame = tk.Frame(self.topElemsFrame)
        self.update_idletasks()
        leftCornerWidth = self._frSmplUnqOptLabelF_.winfo_reqwidth() + int(self.smplUnqOptLabelF.cget("borderwidth")) * 2
        leftCornerHeight = self.smplUnqOptLabelF.winfo_reqheight() + 2
        self.paramVolatilFrame.config(width = leftCornerWidth + 202, height = leftCornerHeight)
        self.paramVolatilFrame.pack_propagate(0)
        
        self.paramVolatilLabel = tk.LabelFrame(self.paramVolatilFrame)
        self._lbParamVolatilLabel_ = self.getSubWgts(self.paramVolatilLabel, tk._dummyLabel)
        self._lbParamVolatilLabel_.config(text = "Статистика")
        self._frParamVolatilLabel_ = self.getSubWgts(self.paramVolatilLabel, tk._dummyFrame)
        
        self.frBtGetVolatilPrm = tk.Frame(self._frParamVolatilLabel_)
        self.btBtGetVolatilPrm = tk.Button(self.frBtGetVolatilPrm, text="Получ. стат. по парам.")

        self.rBtGetVolatilPrm = tk.Radiobutton(self.frBtGetVolatilPrm, text = 'Волатил.   ', variable = self._volatilPrm_, value = True)
        self.rBtGetNonVolatilPrm = tk.Radiobutton(self.frBtGetVolatilPrm, text = 'Не волатил.', variable = self._volatilPrm_, value = False)
        self.btBtGetVolatilPrm.config(relief='groove')
        self.btBtGetVolatilPrm.config(command = self.prcdfGetVolatilPrms)
        self.frBtGetVolatilPrm.pack(side = tk.TOP, anchor = tk.W)
        self.btBtGetVolatilPrm.pack(side = tk.LEFT)
        self.rBtGetVolatilPrm.pack(side = tk.TOP, anchor = tk.W)
        self.rBtGetNonVolatilPrm.pack(side = tk.TOP, anchor = tk.W)

        self.paramVolatilLabel.pack(anchor = tk.W)

        ##self.msgsToAscFrame = tk.Listbox(self.loadFrame, relief='flat', selectmode='multiple')
        ##self.vScroll = tk.Scrollbar(self.loadFrame, orient=tk.VERTICAL)
        ##self.msgsToAscFrame.config( yscrollcommand=self.vScroll.set)
        self.consFrame = tk.LabelFrame(self.mFrame)
        #self.varsFrame = tk.LabelFrame(self.fsFrame)

        ##self.btnCollctnFrame = tk.LabelFrame(self.fsFrame)
        
        self.mCllctnFrame = tk.Frame(self.mFrame)
        
        self._lbBtnLstFrame_ = self.getSubWgts(self.btnLstFrame, tk._dummyLabel)
        self._lbBtnLstFrame_.config(text = 'Раб. с исх. Xml-дер.')
        self._frBtnLstFrame_ = self.getSubWgts(self.btnLstFrame, tk._dummyFrame)
        
        self.varsFrame = tk.Frame(self._frBtnLstFrame_, borderwidth=2, bg = 'blue')
        self.vrSPathFrame = tk.Label(self.varsFrame)
        self.vrFnameFrame = tk.Label(self.varsFrame)
        self.vrUnqFNmFrame = tk.Label(self.varsFrame)
        #self.vrPileCllctnFrame = tk.Label(self.varsFrame)
        self.vrRestreFNmFrame = tk.Label(self.varsFrame)
        
        self._btnLstFrame_ = tk.Frame(self._frBtnLstFrame_, borderwidth = 2)
        
        self.btCatchJMXFiles = tk.Button(self._btnLstFrame_, text="Собрать все \n.jmx файлы", fg="green")
        
	#self.btCatchJMXFiles.config(command = self.testFrame)
        self.btCatchJMXFiles.config(command = self.prcdCatchJMXFiles)
        self.btCatchJMXFiles.config(relief='raised')
        self.btCatchJMXFiles.pack(fill = 'x')
        #self.jmscdObj.setFName = 'toParce.jmx'

        self.btGetJMXMkTree = tk.Button(self._btnLstFrame_, text="Получить дерево из \n.jmx файла", fg="green")
        self.btGetJMXMkTree.config(command = self.prcdGetJMXMkTree)
        self.btGetJMXMkTree.config(relief='raised')
        self.btGetJMXMkTree.pack(fill = 'x')
        
        self.btTreeUnqNms = tk.Button(self._btnLstFrame_, text="Сген. колл. \nс уник. именами")
        self.btTreeUnqNms.config(command = self.prcdTreeUnqNms)
        self.btTreeUnqNms.config(relief='raised', state = tk.DISABLED)
        self.btTreeUnqNms.pack(fill = 'x')
        
        self.btRstrOrigNms = tk.Button(self._btnLstFrame_, text="Восст. ориг. имена\nдля получен. колл.")
        self.btRstrOrigNms.config(command = self.prcdRstrOrigNms)
        self.btRstrOrigNms.config(relief='raised')
        self.btRstrOrigNms.pack(fill = 'x')
        
        self.vrSPathLabel = tk.Label(self.vrSPathFrame)
        self.vrSPathValue = tk.Entry(self.vrSPathFrame, bg='white')
        self.vrSPathLabel.config(text='Каталог с (*.jmx)  файл.:', justify = tk.LEFT)
        self.vrSPathValue.config(justify = tk.LEFT)
        self.vrSPathValue.insert(0, self.jmscdObj.setPATH)
        self.vrSPathLabel.pack(side = tk.LEFT)
        self.vrSPathValue.pack(side = tk.LEFT)
        self.vrSPathFrame.pack(side = tk.TOP)
        
        self.vrFnameLabel = tk.Label(self.vrFnameFrame)
        self.vrFnameValue = tk.Entry(self.vrFnameFrame, bg='white')
        self.vrFnameLabel.config(text='Файл(*.jmx) для парам.:', justify = tk.LEFT)
        self.vrFnameValue.config(justify = tk.LEFT)
        self.vrFnameValue.insert(0, self.jmscdObj.setFName)
        self.vrFnameLabel.pack(side = tk.LEFT)
        self.vrFnameValue.pack(side = tk.LEFT)
        self.vrFnameFrame.pack(side=tk.TOP)
        
        self.vrUnqFNmLabel = tk.Label(self.vrUnqFNmFrame)
        self.vrUnqFNmValue = tk.Entry(self.vrUnqFNmFrame, bg = 'white')
        self.vrUnqFNmLabel.config(text='Файл(*.jmx), униф. элм.:', justify = tk.LEFT)
        self.vrUnqFNmValue.config(justify = tk.LEFT)
        self.vrUnqFNmValue.insert(0, self.jmscdObj.outFileUniqueNames)
        self.vrUnqFNmLabel.pack(side = tk.LEFT)
        self.vrUnqFNmValue.pack(side = tk.LEFT)
        self.vrUnqFNmFrame.pack(side=tk.TOP)
        
        self.vrRestreFNmLabel = tk.Label(self.vrRestreFNmFrame)
        self.vrRestreFNmValue = tk.Entry(self.vrRestreFNmFrame, bg = 'white')
        self.vrRestreFNmLabel.config(text='Файл(*.jmx), восcт. элм.:', justify = tk.LEFT)
        self.vrRestreFNmValue.config(justify = tk.LEFT)
        self.vrRestreFNmValue.insert(0, self.jmscdObj.outFileRestrdOrig)
        self.vrRestreFNmLabel.pack(side = tk.LEFT)
        self.vrRestreFNmValue.pack(side = tk.LEFT)
        self.vrRestreFNmFrame.pack(side=tk.TOP)
        
        self._btnLstFrame_.pack(side = tk.TOP)
        self.varsFrame.pack(side=tk.TOP)
        ##
        
        
        self.frPileOptns = tk.LabelFrame(self.mCllctnFrame)
        self._lbFrPileOptns_ = self.getSubWgts(self.frPileOptns, tk._dummyLabel)
        self._lbFrPileOptns_.config(text = 'Получ. осн. колл.')
        self._frPileOptns_ = self.getSubWgts(self.frPileOptns, tk._dummyFrame)
        self.scrollPileMCllt = tk.Scrollbar(self._frPileOptns_, orient = tk.VERTICAL)
        self.scrollPileMCllt.pack(side = tk.RIGHT, fill = 'y')
        self.lsbxPileMCllct = tk.Listbox(self._frPileOptns_, height = 4, width = 34, yscrollcommand = self.scrollPileMCllt.set)

        for itm in range(4):
            self.lsbxPileMCllct.insert(tk.END, '--')
            
        self.btPileMCllct = tk.Button(self._frPileOptns_, text="Аккумул. раб. коллекц.")
        self.btPileMCllct.config(command = self.prcdPileMCllct, relief='groove')
        self.lsbxPileMCllct.pack(side = tk.TOP)
        self.btPileMCllct.pack(side = tk.TOP)
        self.frPileOptns.pack(side = tk.LEFT)
        
        self.scrollPileMCllt.config(command = self.lsbxPileMCllct.yview)
        
        self.frOutRslts = tk.LabelFrame(self.mCllctnFrame)
        self._lbFrOutRslts_ = self.getSubWgts(self.frOutRslts, tk._dummyLabel)
        self._lbFrOutRslts_.config(text = 'Текущ. знач.')
        self._frOutRslts_ = self.getSubWgts(self.frOutRslts, tk._dummyFrame)
        self.entStrVar = tk.StringVar(self._frOutRslts_)
        #self.entStrVar.set(self.jmscdObj.entityNames[2]) # default value
        self.lstWrkEnts = tk.OptionMenu(self._frOutRslts_, variable = self.entStrVar)
        for ent in self.jmscdObj.entityNames:
            self.lstWrkEnts.add_command(ent)
        self.entStrVar.set(self.jmscdObj.entityNames[2])
        #self.lstWrkEnts = tk.Listbox(self.mCllctnFrame)
        
        ##Опция выбора сущности на данный момент выключена
        ####self.lstWrkEnts.pack(side = tk.TOP)
        self.tstOutText = tk.Text(self._frOutRslts_, state = tk.DISABLED, bg='#FFEFD5')#, width=64)
        self.tstOutText.pack(side = tk.TOP)
        self.txtWdgtDelete(False)
        self.txtWdgtInsert(self._initText_)
        #
        self.frWrInfExtCntrlElm = tk.Frame(self._frOutRslts_)
        self.btWriteChngsToF = tk.Button(self.frWrInfExtCntrlElm, text='Запис. изм.\nв файл')
        self.btWriteChngsToF.config(command = self.prcdWrtXmlTree)
        self.btUpdateXMLTree = tk.Button(self.frWrInfExtCntrlElm, text='Обнов. \nxml-дерево')
        self.btUpdateXMLTree.config(command = self.prcdUpdtXMLTree, state = tk.DISABLED)
        self.btUpdateXMLTree.pack(side = tk.LEFT)
        self.btWriteChngsToF.pack(side = tk.LEFT)
        self.frWrInfExtCntrlElm.pack(side = tk.BOTTOM)
        #
        self.frOutRslts.pack(side = tk.LEFT)

        ###
        
        self.frGetCollctnData = tk.Frame(self.mCllctnFrame)
        #
        self.frGetListKeys = tk.LabelFrame(self.frGetCollctnData)
        self._frGetListKeys_ = self.getSubWgts(self.frGetListKeys, tk._dummyFrame)
        self.frBtGetLstKeys = tk.Frame(self._frGetListKeys_)
        self.btGetListKeys = tk.Button(self.frBtGetLstKeys, text="Список получ. ключей:")
        self.varRBtLstKeys = tk.IntVar()
        self.varRBtLstKeys.set(1)
        self.rBtLstKeysPrms = tk.Radiobutton(self.frBtGetLstKeys, text = 'Парам. ', variable = self.varRBtLstKeys, value = 1)
        self.rBtLstKeysLnks = tk.Radiobutton(self.frBtGetLstKeys, text = 'Ссылки', variable = self.varRBtLstKeys, value = 2)
        self.btGetListKeys.config(relief='groove')
        self.btGetListKeys.config(command = self.prcdfGetListKeys)
        self._lbGetListKeys_ = self.getSubWgts(self.frGetListKeys, tk._dummyLabel)
        self._lbGetListKeys_.config(text = 'Раб. с осн. коллекц.')
        self.frBtGetLstKeys.pack(side = tk.TOP, anchor = tk.W)
        self.btGetListKeys.pack(side = tk.LEFT)
        self.rBtLstKeysPrms.pack(side = tk.TOP, anchor = tk.E)
        self.rBtLstKeysLnks.pack(side = tk.TOP, anchor = tk.E)
        self.frGetListKeys.pack(side = tk.TOP, fill = 'x')
        #
        self.frGetDictData = tk.Frame(self._frGetListKeys_)
        self.frGetDictData.config(borderwidth = 2, bg = 'green')
        ##
        self.frGetDataDictItem = tk.Frame(self.frGetDictData)
        self.vlGetDataDictItem = tk.Entry(self.frGetDataDictItem, bg='white')
        self.vlGetDataDictItem.insert(0, '<знач.ключа>')
        self.btGetDataDictItem = tk.Button(self.frGetDataDictItem, text="Все знач.\nпо задан. ключу:")
        self.btGetDataDictItem.config(command = self.prcdGetDataDictItem)
        self.btGetDataDictItem.config(relief='groove')
        self.btGetDataDictItem.pack(side= tk.LEFT)
        self.vlGetDataDictItem.pack(side = tk.RIGHT, fill = 'y')
        self.frGetDataDictItem.pack(side = tk.TOP)
        ##
        self.frGetScrLstByNm = tk.Frame(self.frGetDictData)
        self.btGetScrLstByNm = tk.Button(self.frGetScrLstByNm, text="Все контрлр.\nпо задан. ключу:")
        self.btGetScrLstByNm.config(command = self.prcdGetScrLstByNm)
        self.btGetScrLstByNm.config(relief='groove')
        self.vlGetScrLstByNm = tk.Entry(self.frGetScrLstByNm, bg='white')
        self.vlGetScrLstByNm.insert(0, '<знач.ключа>')
        self.chkBtVar = tk.BooleanVar(self.frGetScrLstByNm)
        self.chkBtVar.set(False)
        self.chkGetScrLstByNm = tk.Checkbutton(self.frGetScrLstByNm, text='Вывод сэмплр.', variable=self.chkBtVar)
        self.btGetScrLstByNm.pack(side= tk.LEFT)
        self.vlGetScrLstByNm.pack(side = tk.TOP)
        self.chkGetScrLstByNm.pack(side = tk.LEFT)
        self.frGetScrLstByNm.pack(side = tk.TOP)
        ##
        self.frGetScrFncByKeyVal = tk.Frame(self.frGetDictData)
        self.btGetScrFncByKeyVal = tk.Button(self.frGetScrFncByKeyVal, text="Все контрлр.\nпо  паре  кл.-зн.:")
        self.btGetScrFncByKeyVal.config(command = self.prcdGetScrFncByKeyVal)
        self.btGetScrFncByKeyVal.config(relief='groove')
        self.vlGetScrFncByKeyVal = tk.Entry(self.frGetScrFncByKeyVal, bg='white')
        self.vlGetScrFncByKeyVal.insert(0, '<знач.ключа>')
        self.vrGetScrFncByKeyVal = tk.Entry(self.frGetScrFncByKeyVal, bg='white')
        self.vrGetScrFncByKeyVal.insert(0, '<знач.парам.>')
        self.chkKeyVlVar = tk.BooleanVar(self.frGetScrFncByKeyVal)
        self.chkKeyVlVar.set(False)
        self.chkGetScrFncByKeyVal = tk.Checkbutton(self.frGetScrFncByKeyVal, text='Вывод сэмплр.', variable=self.chkKeyVlVar)
        self.btGetScrFncByKeyVal.pack(side= tk.LEFT, fill='y')
        self.vlGetScrFncByKeyVal.pack(side = tk.TOP)
        self.vrGetScrFncByKeyVal.pack(side = tk.TOP)
        self.chkGetScrFncByKeyVal.pack(side = tk.LEFT)
        self.frGetScrFncByKeyVal.pack(side = tk.TOP, fill='x')
        ##
        self.frGetValByKSF = tk.Frame(self.frGetDictData)
        self.frGetValByKSF.config(borderwidth = 1, bg = 'red')
        self.blnMsg = tk.Balloon(self.frGetValByKSF, initwait = 350, bg='yellow')
        self.blnMsgText = 'Внимание!\nНазвания контроллеров и сэмплеров (возможно) были изменены,\nследует сверять в jmeter по файлу "(*.jmx) униф. эл"'
        self.blnMsg.bind_widget(self.frGetValByKSF, msg = self.blnMsgText)
        self.btGetValByKSF = tk.Button(self.frGetValByKSF, text="Значен. для\n кл.-кнтр.-смпл.:")
        self.btGetValByKSF.config(command = self.prcdGetValByKSF)
        self.btGetValByKSF.config(relief='groove')
        self.vlGetValByKSF = tk.Entry(self.frGetValByKSF, bg='white')
        self.vlGetValByKSF.insert(0, '<знач.ключа>')
        self.ctGetValByKSF = tk.Entry(self.frGetValByKSF, bg='white')
        self.ctGetValByKSF.insert(0, '<назв. контрлр.>')
        self.smGetValByKSF = tk.Entry(self.frGetValByKSF, bg='white')
        self.smGetValByKSF.insert(0, '<назв. сэмплр.>')
        self.btGetValByKSF.pack(side= tk.LEFT, fill='y')
        self.vlGetValByKSF.pack(side = tk.TOP)
        self.ctGetValByKSF.pack(side = tk.TOP)
        self.smGetValByKSF.pack(side = tk.TOP)
        self.frGetValByKSF.pack(side = tk.TOP, fill='x')
        ##
        self.frSetValsToSlctn = tk.Frame(self._frGetListKeys_, pady = 2)
        self.btSetValsToSlctn = tk.Button(self.frSetValsToSlctn, text = 'Установ.\n для дан.\n элемен.\n словар.')
        self.btSetValsToSlctn.config(command = self.prcdSetValsToSlctn, state = tk.DISABLED, relief = "groove")
        self.lblSetValsToSlctn = tk.Label(self.frSetValsToSlctn, text = ' <==> ')
        self.entSetValsToSlctn = tk.Entry(self.frSetValsToSlctn, bg='white')
        self.entSetValsToSlctn.insert(0, '*новое знач.*')
        self.btSetValsToSlctn.pack(side = tk.LEFT, anchor=tk.W)
        self.lblSetValsToSlctn.pack(side = tk.LEFT)
        self.entSetValsToSlctn.pack(side = tk.RIGHT, anchor=tk.E)
        ###
        self.frGetDictData.pack(side = tk.TOP)
        self.frSetValsToSlctn.pack(side = tk.TOP, anchor = tk.W)
        #
        self.frGetCollctnData.pack(side = tk.LEFT)

        #for lstEntr in self.jmscdObj.entityNames:
        #    self.lstWrkEnts.insert(tk.END, lstEntr)
        
        self.fsFrame.pack(side="top", fill='x')
        self.mCllctnFrame.pack(side=tk.LEFT, fill='x')
        ##self.loadFrame.pack(side="top", fill='x')
        self.smplUnqOptFrame.pack(side = tk.RIGHT, anchor = tk.E)
        self.btnLstFrame.pack(side = tk.RIGHT)
        self.paramVolatilFrame.pack(side = tk.RIGHT)
        self.topElemsFrame.pack(side="top", fill='y')
Ejemplo n.º 4
0
 def __init__(self, path="", **options):
     self.glos = Glossary(ui=self)
     self.pref = {}
     self.pref_load(**options)
     #############################################
     rootWin = self.rootWin = tix.Tk()
     tix.Frame.__init__(self, rootWin)
     rootWin.title("PyGlossary (Tkinter)")
     rootWin.resizable(True, False)
     ########
     set_window_icon(rootWin)
     ########
     self.pack(fill="x")
     # rootWin.bind("<Configure>", self.resized)
     ######################
     self.glos = Glossary(ui=self)
     self.pref = {}
     self.pref_load()
     self.pathI = ""
     self.pathO = ""
     self.fcd_dir = join(homeDir, "Desktop")
     ######################
     vpaned = tk.PanedWindow(self, orient=tk.VERTICAL)
     notebook = tix.NoteBook(vpaned)
     notebook.add("tab1", label="Convert", underline=0)
     notebook.add("tab2", label="Reverse", underline=0)
     convertFrame = tix.Frame(notebook.tab1)
     ######################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text="Read from format")
     label.pack(side="left")
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc)
     # comboVar.set(Glossary.readDesc[0])
     comboVar.set(noneItem)
     combo.pack(side="left")
     self.combobox_i = comboVar
     ##
     frame.pack(fill="x")
     ###################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text="  Path:")
     label.pack(side="left")
     ##
     entry = tix.Entry(frame)
     entry.pack(side="left", fill="x", expand=True)
     entry.bind_all("<KeyPress>", self.entry_changed)
     self.entry_i = entry
     ##
     button = tix.Button(
         frame,
         text="Browse",
         command=self.browse_i,
         # bg="#f0f000",
         # activebackground="#f6f622",
     )
     button.pack(side="left")
     ##
     frame.pack(fill="x")
     ######################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text="Write to format    ")
     label.pack(side="left")
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.writeDesc)
     # comboVar.set(Glossary.writeDesc[0])
     comboVar.set(noneItem)
     combo.pack(side="left")
     combo.bind("<Configure>", self.combobox_o_changed)
     self.combobox_o = comboVar
     ##
     frame.pack(fill="x")
     ###################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text="  Path:")
     label.pack(side="left")
     ##
     entry = tix.Entry(frame)
     entry.pack(side="left", fill="x", expand=True)
     # entry.bind_all("<KeyPress>", self.entry_changed)
     self.entry_o = entry
     ##
     button = tix.Button(
         frame,
         text="Browse",
         command=self.browse_o,
         # bg="#f0f000",
         # activebackground="#f6f622",
     )
     button.pack(side="left")
     ##
     frame.pack(fill="x")
     #######
     frame = tix.Frame(convertFrame)
     label = tix.Label(frame, text=" " * 15)
     label.pack(
         side="left",
         fill="x",
         expand=True,
     )
     button = tix.Button(
         frame,
         text="Convert",
         command=self.convert,
         # bg="#00e000",
         # activebackground="#22f022",
     )
     button.pack(
         side="left",
         fill="x",
         expand=True,
     )
     ###
     frame.pack(fill="x")
     ######
     convertFrame.pack(fill="x")
     vpaned.add(notebook)
     #################
     console = tix.Text(vpaned, height=15, background="#000000")
     # self.consoleH = 15
     # sbar = Tix.Scrollbar(
     #	vpaned,
     #	orien=Tix.VERTICAL,
     #	command=console.yview
     # )
     # sbar.grid ( row=0, column=1)
     # console["yscrollcommand"] = sbar.set
     # console.grid()
     console.pack(fill="both", expand=True)
     log.addHandler(TkTextLogHandler(console), )
     console.insert("end", "Console:\n")
     ####
     vpaned.add(console)
     vpaned.pack(fill="both", expand=True)
     self.console = console
     ##################
     frame2 = tix.Frame(self)
     clearB = tix.Button(
         frame2,
         text="Clear",
         command=self.console_clear,
         # bg="black",
         # fg="#ffff00",
         # activebackground="#333333",
         # activeforeground="#ffff00",
     )
     clearB.pack(side="left")
     ####
     label = tix.Label(frame2, text="Verbosity")
     label.pack(side="left")
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(
         frame2,
         comboVar,
         0,
         1,
         2,
         3,
         4,
     )
     comboVar.set(log.getVerbosity())
     comboVar.trace("w", self.verbosityChanged)
     combo.pack(side="left")
     self.verbosityCombo = comboVar
     #####
     pbar = ProgressBar(frame2, width=400)
     pbar.pack(side="left", fill="x", expand=True)
     self.pbar = pbar
     frame2.pack(fill="x")
     self.progressTitle = ""
     #############
     # vpaned.grid()
     # bottomFrame.grid()
     # self.grid()
     #####################
     # lbox = Tix.Listbox(convertFrame)
     # lbox.insert(0, "aaaaaaaa", "bbbbbbbbbbbbbbbbbbbb")
     # lbox.pack(fill="x")
     ##############
     frame3 = tix.Frame(self)
     aboutB = tix.Button(
         frame3,
         text="About",
         command=self.about_clicked,
         # bg="#e000e0",
         # activebackground="#f030f0",
     )
     aboutB.pack(side="right")
     closeB = tix.Button(
         frame3,
         text="Close",
         command=self.quit,
         # bg="#ff0000",
         # activebackground="#ff5050",
     )
     closeB.pack(side="right")
     frame3.pack(fill="x")
     # __________________________ Reverse Tab __________________________ #
     revFrame = tix.Frame(notebook.tab2)
     revFrame.pack(fill="x")
     ######################
     frame = tix.Frame(revFrame)
     ##
     label = tix.Label(frame, text="Read from format")
     label.pack(side="left")
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc)
     # comboVar.set(Glossary.readDesc[0])
     comboVar.set(noneItem)
     combo.pack(side="left")
     self.combobox_r_i = comboVar
     ##
     frame.pack(fill="x")
     ###################
     frame = tix.Frame(revFrame)
     ##
     label = tix.Label(frame, text="  Path:")
     label.pack(side="left")
     ##
     entry = tix.Entry(frame)
     entry.pack(side="left", fill="x", expand=True)
     # entry.bind_all("<KeyPress>", self.entry_r_i_changed)
     self.entry_r_i = entry
     ##
     button = tix.Button(
         frame,
         text="Browse",
         command=self.r_browse_i,
         # bg="#f0f000",
         # activebackground="#f6f622",
     )
     button.pack(side="left")
     ##
     button = tix.Button(
         frame,
         text="Load",
         command=self.r_load,
         # bg="#7777ff",
     )
     button.pack(side="left")
     ###
     frame.pack(fill="x")
     ###################
     frame = tix.Frame(revFrame)
     ##
     label = tix.Label(frame, text="Output Tabfile")
     label.pack(side="left")
     ###
     entry = tix.Entry(frame)
     entry.pack(side="left", fill="x", expand=True)
     # entry.bind_all("<KeyPress>", self.entry_r_i_changed)
     self.entry_r_o = entry
     ##
     button = tix.Button(
         frame,
         text="Browse",
         command=self.r_browse_o,
         # bg="#f0f000",
         # activebackground="#f6f622",
     )
     button.pack(side="left")
     ##
     frame.pack(fill="x")
     ##############################
     if path:
         self.entry_i.insert(0, path)
         self.entry_changed()
         self.load()
Ejemplo n.º 5
0
    def __init__(self, item, on_item_update, on_item_remove):
        # make sure only one dialog at a time
        try:
            ActionDialog._current_dialog.destroy()
        except Exception:
            pass

        # init
        self.item = item
        self.on_item_update = on_item_update
        self.on_item_remove = on_item_remove

        # dialog
        self.dialog = tk.Tk()
        self.dialog.title("Edit")
        self.dialog.resizable(width=False, height=False)

        # labels
        label_frame = tk.Frame(self.dialog,
                               highlightbackground="gray",
                               highlightcolor="gray",
                               highlightthickness=2)
        pad = tk.Frame(label_frame, height=8)
        pad.pack(side=tk.TOP, fill=tk.BOTH, expand=True)

        # text hash
        tk.Label(label_frame, text="hash:", anchor=tk.W, font="helvetica 12 bold") \
            .pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        text_hash = tk.Text(label_frame, width=10, height=1, wrap=tk.WORD)
        text_hash.insert(tk.END, item.entry[:item.entry.find(".")])
        text_hash.bind(
            "<Key>", lambda event: "break" if event.keysym == "Return" else "")
        text_hash.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=8)

        # text key
        tk.Label(label_frame, text="key:", anchor=tk.W, font="helvetica 12 bold") \
            .pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        text_key = tk.Text(label_frame, width=80, height=1, wrap=tk.WORD)
        text_key.insert(tk.END, item.key)
        text_key.bind(
            "<Key>", lambda event: "break" if event.keysym == "Return" else "")
        text_key.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=8)

        # text value
        tk.Label(label_frame, text="value: ", anchor=tk.W, font="helvetica 12 bold") \
            .pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        text_value = tk.Text(label_frame, width=80, height=5, wrap=tk.WORD)
        text_value.insert(tk.END, item.value)
        text_value.bind(
            "<Key>", lambda event: "break" if event.keysym == "Return" else "")
        text_value.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=8)

        pad = tk.Frame(label_frame, height=8)
        pad.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        label_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True)

        # action buttons
        btn_frame = tk.Frame(self.dialog)
        btn = tk.Button(btn_frame,
                        text="Cancel",
                        command=lambda: self.dialog.destroy())
        btn.pack(side=tk.LEFT, fill=tk.X, expand=True)

        btn = tk.Button(btn_frame,
                        text="Remove",
                        command=lambda: self.action_remove(self.item))
        btn.pack(side=tk.LEFT, fill=tk.X, expand=True)

        btn = tk.Button(btn_frame,
                        text="Save",
                        command=lambda: self.action_save(
                            text_hash.get("1.0", tk.END)[:-1],
                            text_key.get("1.0", tk.END)[:-1],
                            text_value.get("1.0", tk.END)[:-1]))
        btn.pack(side=tk.LEFT, fill=tk.X, expand=True)
        btn_frame.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)

        ActionDialog._current_dialog = self.dialog
Ejemplo n.º 6
0
    def __init__(self, adapter):
        # make sure only one dialog at a time
        try:
            SearchDialog._current_dialog.destroy()
        except Exception:
            pass

        # init
        self.adapter = adapter
        self.last_query_params = ["", ""]
        self.last_query = {}
        self.last_query_index = -1

        # dialog
        self.dialog = tk.Tk()
        self.dialog.title("Search")
        self.dialog.resizable(width=False, height=False)
        self.dialog.config(highlightbackground="gray",
                           highlightcolor="gray",
                           highlightthickness=2)
        self.dialog.protocol("WM_DELETE_WINDOW", self.on_close)

        # labels
        label_frame = tk.Frame(self.dialog)

        # text key
        tk.Label(label_frame, text="key:", anchor=tk.W, font="helvetica 12 bold") \
            .pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        text_key = tk.Text(label_frame, width=40, height=1, wrap=tk.WORD)
        text_key.bind(
            "<Key>", lambda event: "break" if event.keysym == "Return" else "")
        text_key.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=8)

        # text value
        tk.Label(label_frame, text="value: ", anchor=tk.W, font="helvetica 12 bold") \
            .pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        text_value = tk.Text(label_frame, width=40, height=1, wrap=tk.WORD)
        text_value.bind(
            "<Key>", lambda event: "break" if event.keysym == "Return" else "")
        text_value.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=8)

        pad = tk.Frame(label_frame, height=14)
        pad.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
        label_frame.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)

        # action buttons
        btn_frame = tk.Frame(self.dialog)
        btn_row1_frame = tk.Frame(btn_frame)
        btn = tk.Button(btn_row1_frame,
                        text="<<<",
                        width=10,
                        command=lambda: self.action_search(
                            text_key.get("1.0", tk.END)[:-1],
                            text_value.get("1.0", tk.END)[:-1], -1))
        btn.pack(side=tk.LEFT, fill=tk.X, expand=False, padx=2, pady=2)

        btn = tk.Button(btn_row1_frame,
                        text=">>>",
                        width=10,
                        command=lambda: self.action_search(
                            text_key.get("1.0", tk.END)[:-1],
                            text_value.get("1.0", tk.END)[:-1], +1))
        btn.pack(side=tk.LEFT, fill=tk.X, expand=False, padx=2, pady=2)
        btn_row1_frame.pack(side=tk.TOP, fill=tk.X, expand=False)

        btn = tk.Button(btn_frame,
                        text="Count",
                        width=20,
                        command=lambda: self.action_count(
                            text_key.get("1.0", tk.END)[:-1],
                            text_value.get("1.0", tk.END)[:-1]))
        btn.pack(side=tk.TOP, fill=tk.X, expand=False, padx=2, pady=2)

        self.found_label = tk.Label(btn_frame)
        self.found_label.pack(side=tk.TOP,
                              fill=tk.BOTH,
                              expand=True,
                              padx=2,
                              pady=2)
        btn_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True, padx=2, pady=2)

        SearchDialog._current_dialog = self.dialog
Ejemplo n.º 7
0
    def __init__(self):
        rootWin = self.rootWin = tix.Tk()
        # a hack that hides the window until we move it to the center of screen
        if os.sep == "\\":  # Windows
            rootWin.attributes('-alpha', 0.0)
        else:  # Linux
            rootWin.withdraw()
        tix.Frame.__init__(self, rootWin)
        UIBase.__init__(self)
        rootWin.title("PyGlossary (Tkinter)")
        rootWin.resizable(True, False)
        ########
        set_window_icon(rootWin)
        rootWin.bind('<Escape>', lambda e: rootWin.quit())
        #########
        # Linux: ('clam', 'alt', 'default', 'classic')
        # Windows: ('winnative', 'clam', 'alt', 'default', 'classic', 'vista', 'xpnative')
        # style = ttk.Style()
        # style.theme_use("default")
        ########
        self.pack(fill="x")
        # rootWin.bind("<Configure>", self.resized)
        #######################
        defaultFont = tkFont.nametofont('TkDefaultFont')
        if core.sysName in ("linux", "freebsd"):
            defaultFont.configure(size=int(defaultFont.cget("size") * 1.4))
        ####
        self.biggerFont = defaultFont.copy()
        self.biggerFont.configure(size=int(defaultFont.cget("size") * 1.8))
        ######################
        self.glos = Glossary(ui=self)
        self.glos.config = self.config
        self._convertOptions = {}
        self.pathI = ""
        self.pathO = ""
        fcd_dir = join(homeDir, "Desktop")
        if isfile(self.fcd_dir_save_path):
            try:
                with open(self.fcd_dir_save_path, encoding="utf-8") as fp:
                    fcd_dir = fp.read().strip("\n")
            except Exception:
                log.exception("")
        self.fcd_dir = fcd_dir
        ######################
        notebook = tix.NoteBook(self)
        notebook.add("tabConvert", label="Convert", underline=0)
        # notebook.add("tabReverse", label="Reverse", underline=0)
        notebook.add("tabAbout", label="About", underline=0)
        convertFrame = tix.Frame(notebook.tabConvert)
        aboutFrame = tix.Frame(notebook.tabAbout)
        ###################
        row = 0
        label = ttk.Label(convertFrame, text="Input File: ")
        label.grid(
            row=row,
            column=0,
            sticky=tk.W,
            padx=5,
        )
        ##
        entry = tix.Entry(convertFrame)
        entry.grid(
            row=row,
            column=1,
            columnspan=2,
            sticky=tk.W + tk.E,
            padx=0,
        )
        entry.bind_all("<KeyPress>", self.anyEntryChanged)
        self.entryInputConvert = entry
        ##
        button = newButton(
            convertFrame,
            text="Browse",
            command=self.browseInputConvert,
            # bg="#f0f000",
            # activebackground="#f6f622",
            borderwidth=3,
        )
        button.grid(
            row=row,
            column=3,
            sticky=tk.W + tk.E,
            padx=5,
        )
        ######################
        row += 1
        label = ttk.Label(convertFrame, text="Input Format: ")
        label.grid(
            row=row,
            column=0,
            sticky=tk.W,
            padx=5,
        )
        ##
        self.formatButtonInputConvert = FormatButton(
            master=convertFrame,
            descList=readDesc,
            dialogTitle="Select Input Format",
            onChange=self.inputFormatChanged,
        )
        self.formatButtonInputConvert.grid(
            row=row,
            column=1,
            columnspan=2,
            sticky=tk.W,
            padx=0,
        )
        ##
        self.readOptions = {}  # type: Dict[str, Any]
        self.writeOptions = {}  # type: Dict[str, Any]
        ##
        self.readOptionsButton = FormatOptionsButton(
            "Read",
            self.readOptions,
            self.formatButtonInputConvert,
            master=convertFrame,
        )
        self.inputFormatRow = row
        ######################
        row += 1
        label = ttk.Label(convertFrame)
        label.grid(
            row=row,
            column=0,
            sticky=tk.W,
        )
        ###################
        row += 1
        label = ttk.Label(convertFrame, text="Output File: ")
        label.grid(
            row=row,
            column=0,
            sticky=tk.W,
            padx=5,
        )
        ##
        entry = tix.Entry(convertFrame)
        entry.grid(
            row=row,
            column=1,
            columnspan=2,
            sticky=tk.W + tk.E,
            padx=0,
        )
        entry.bind_all("<KeyPress>", self.anyEntryChanged)
        self.entryOutputConvert = entry
        ##
        button = newButton(
            convertFrame,
            text="Browse",
            command=self.browseOutputConvert,
            # bg="#f0f000",
            # activebackground="#f6f622",
            borderwidth=3,
        )
        button.grid(
            row=row,
            column=3,
            sticky=tk.W + tk.E,
            padx=5,
        )
        ######################
        row += 1
        label = ttk.Label(convertFrame, text="Output Format: ")
        label.grid(
            row=row,
            column=0,
            sticky=tk.W,
            padx=5,
        )
        ##
        self.formatButtonOutputConvert = FormatButton(
            master=convertFrame,
            descList=writeDesc,
            dialogTitle="Select Output Format",
            onChange=self.outputFormatChanged,
        )
        self.formatButtonOutputConvert.grid(
            row=row,
            column=1,
            columnspan=2,
            sticky=tk.W,
            padx=0,
        )
        ##
        self.writeOptionsButton = FormatOptionsButton(
            "Write",
            self.writeOptions,
            self.formatButtonOutputConvert,
            master=convertFrame,
        )
        self.outputFormatRow = row
        ###################
        row += 1
        button = newButton(
            convertFrame,
            text="Convert",
            command=self.convert,
            # background="#00e000",
            # activebackground="#22f022",
            borderwidth=7,
            font=self.biggerFont,
            padx=5,
            pady=5,
        )
        button.grid(
            row=row,
            column=2,
            columnspan=3,
            sticky=tk.W + tk.E + tk.S,
            padx=5,
            pady=5,
        )
        # print(f"row number for Convert button: {row}")
        ######
        convertFrame.pack(fill="x")
        # convertFrame.grid(sticky=tk.W + tk.E + tk.N + tk.S)
        #################
        row += 1
        console = tix.Text(
            convertFrame,
            height=15,
            background="#000",
            foreground="#fff",
        )
        console.bind("<Key>", self.consoleKeyPress)
        # self.consoleH = 15
        # sbar = Tix.Scrollbar(
        # 	convertFrame,
        # 	orien=Tix.VERTICAL,
        # 	command=console.yview
        # )
        # sbar.grid (row=row, column=1)
        # console["yscrollcommand"] = sbar.set
        console.grid(
            row=row,
            column=0,
            columnspan=4,
            sticky=tk.W + tk.E,
            padx=5,
            pady=0,
        )
        log.addHandler(TkTextLogHandler(console), )
        console.insert("end", "Console:\n")
        ####
        self.console = console
        ##################
        aboutFrame2 = tix.Frame(aboutFrame)
        ##
        label = newLabelWithImage(aboutFrame2, file=logo)
        label.pack(side="left")
        ##
        ##
        label = ttk.Label(aboutFrame2,
                          text=f"PyGlossary\nVersion {core.VERSION}")
        label.pack(side="left")
        ##
        aboutFrame2.pack(side="top", fill="x")
        ##
        style = ttk.Style(self)
        style.configure("TNotebook", tabposition="wn")
        # ws => to the left (west) and to the bottom (south)
        # wn => to the left (west) and at top
        aboutNotebook = ttk.Notebook(aboutFrame, style="TNotebook")

        aboutFrame3 = tk.Frame(aboutNotebook)
        authorsFrame = tk.Frame(aboutNotebook)
        licenseFrame = tk.Frame(aboutNotebook)

        # tabImg = tk.PhotoImage(file=join(resDir, "dialog-information-22.png"))
        # tabImg = tk.PhotoImage(file=join(resDir, "author-22.png"))

        aboutNotebook.add(
            aboutFrame3,
            text="\n About  \n",
            # image=tabImg, # not working
            # compound=tk.TOP,
            # padding=50, # not working
        )
        aboutNotebook.add(
            authorsFrame,
            text="\nAuthors\n",
        )
        aboutNotebook.add(
            licenseFrame,
            text="\nLicense\n",
        )

        label = newReadOnlyText(
            aboutFrame3,
            text=f"{aboutText}\nHome page: {core.homePage}",
            font=("DejaVu Sans", 11, ""),
        )
        label.pack(fill="x")

        authorsText = "\n".join(authors)
        authorsText = authorsText.replace("\t", "    ")
        label = newReadOnlyText(
            authorsFrame,
            text=authorsText,
            font=("DejaVu Sans", 11, ""),
        )
        label.pack(fill="x")

        label = newReadOnlyText(
            licenseFrame,
            text=licenseText,
            font=("DejaVu Sans", 11, ""),
        )
        label.pack(fill="x")

        aboutNotebook.pack(fill="x")

        aboutFrame.pack(fill="x")

        ######################
        tk.Grid.columnconfigure(convertFrame, 0, weight=1)
        tk.Grid.columnconfigure(convertFrame, 1, weight=30)
        tk.Grid.columnconfigure(convertFrame, 2, weight=20)
        tk.Grid.columnconfigure(convertFrame, 3, weight=1)
        tk.Grid.rowconfigure(convertFrame, 0, weight=50)
        tk.Grid.rowconfigure(convertFrame, 1, weight=50)
        tk.Grid.rowconfigure(convertFrame, 2, weight=1)
        tk.Grid.rowconfigure(convertFrame, 3, weight=50)
        tk.Grid.rowconfigure(convertFrame, 4, weight=50)
        tk.Grid.rowconfigure(convertFrame, 5, weight=1)
        tk.Grid.rowconfigure(convertFrame, 6, weight=50)

        # _________________________________________________________________ #

        notebook.pack(fill="both", expand=True)

        # _________________________________________________________________ #

        statusBarframe = tk.Frame(self, borderwidth=3)
        clearB = newButton(
            statusBarframe,
            text="Clear",
            command=self.console_clear,
            # bg="black",
            # fg="#ffff00",
            # activebackground="#333333",
            # activeforeground="#ffff00",
            borderwidth=3,
            height=2,
        )
        clearB.pack(side="left")
        ####
        label = ttk.Label(statusBarframe, text="Verbosity")
        label.pack(side="left")
        ##
        comboVar = tk.StringVar()
        combo = ttk.OptionMenu(
            statusBarframe,
            comboVar,
            log.getVerbosity(),  # default
            0,
            1,
            2,
            3,
            4,
            5,
        )
        comboVar.trace("w", self.verbosityChanged)
        combo.pack(side="left")
        self.verbosityCombo = comboVar
        #####
        pbar = ProgressBar(statusBarframe, width=700, height=28)
        pbar.pack(side="left", fill="x", expand=True)
        self.pbar = pbar
        statusBarframe.pack(fill="x")
        self.progressTitle = ""
        # _________________________________________________________________ #

        centerWindow(rootWin)
        # show the window
        if os.sep == "\\":  # Windows
            rootWin.attributes('-alpha', 1.0)
        else:  # Linux
            rootWin.deiconify()
Ejemplo n.º 8
0
from tkinter import tix as tkinter
from tkinter import ttk

root = tkinter.Tk()
notebook = ttk.Notebook(root)
notebook.pack(expand=True, fill="both", side=tkinter.LEFT)

for info in ["Title 1", "Title 2", "Title 3"]:
    tab = tkinter.Frame()
    notebook.add(tab, text=info)
    tkinter.Text(tab).pack()

#buttons
buttonFrame = tkinter.Frame()
buttonFrame.pack(side=tkinter.RIGHT, fill="y")
for text in ["thing 1", "thing 2", "thing 3"]:
    b = tkinter.Button(buttonFrame, text=text)
    b.pack()
Ejemplo n.º 9
0
    def __init__(self, path="", **options):
        self.glos = Glossary(ui=self)
        self.pref = {}
        self.pref_load(**options)
        #############################################
        rootWin = self.rootWin = tix.Tk()
        # a hack that hides the window until we move it to the center of screen
        if os.sep == "\\":  # Windows
            rootWin.attributes('-alpha', 0.0)
        else:  # Linux
            rootWin.withdraw()
        tix.Frame.__init__(self, rootWin)
        rootWin.title("PyGlossary (Tkinter)")
        rootWin.resizable(True, False)
        ########
        set_window_icon(rootWin)
        rootWin.bind('<Escape>', lambda e: rootWin.quit())
        ########
        self.pack(fill="x")
        # rootWin.bind("<Configure>", self.resized)
        ######################
        self.glos = Glossary(ui=self)
        self.pref = {}
        self.pref_load()
        self.pathI = ""
        self.pathO = ""
        fcd_dir = join(homeDir, "Desktop")
        if isfile(self.fcd_dir_save_path):
            try:
                with open(self.fcd_dir_save_path, encoding="utf-8") as fp:
                    fcd_dir = fp.read().strip("\n")
            except Exception:
                log.exception("")
        self.fcd_dir = fcd_dir
        ######################
        notebook = tix.NoteBook(self)
        notebook.add("tabConvert", label="Convert", underline=0)
        # notebook.add("tabReverse", label="Reverse", underline=0)
        notebook.add("tabAbout", label="About", underline=0)
        convertFrame = tix.Frame(notebook.tabConvert)
        aboutFrame = tix.Frame(notebook.tabAbout)
        convertVpaned = ttk.PanedWindow(convertFrame, orient=tk.VERTICAL)
        ######################
        frame = tix.Frame(convertFrame)
        ##
        label = ttk.Label(frame, text="Read from format")
        label.pack(side="left")
        ##
        comboVar = tk.StringVar()
        combo = ttk.OptionMenu(
            frame,
            comboVar,
            None,  # default
            *Glossary.readDesc,
        )
        combo.pack(side="left")
        comboVar.trace("w", self.inputComboChanged)
        self.formatVarInputConvert = comboVar
        ##
        self.readOptions = {}  # type: Dict[str, Any]
        self.writeOptions = {}  # type: Dict[str, Any]
        ##
        self.readOptionsButton = FormatOptionsButton(
            "Read",
            self.readOptions,
            self.formatVarInputConvert,
            master=frame,
        )
        ##
        frame.pack(fill="x")
        ###################
        frame = tix.Frame(convertFrame)
        ##
        label = ttk.Label(frame, text="  Path:")
        label.pack(side="left")
        ##
        entry = tix.Entry(frame)
        entry.pack(side="left", fill="x", expand=True)
        entry.bind_all("<KeyPress>", self.inputEntryChanged)
        self.entryInputConvert = entry
        ##
        button = ttk.Button(
            frame,
            text="Browse",
            command=self.browseInputConvert,
            # bg="#f0f000",
            # activebackground="#f6f622",
        )
        button.pack(side="left")
        ##
        frame.pack(fill="x")
        ######################
        frame = tix.Frame(convertFrame)
        ##
        label = ttk.Label(frame, text="Write to format    ")
        label.pack(side="left")
        ##
        comboVar = tk.StringVar()
        combo = ttk.OptionMenu(
            frame,
            comboVar,
            None,  # default
            *Glossary.writeDesc,
        )
        combo.pack(side="left")
        comboVar.trace("w", self.outputComboChanged)
        self.formatVarOutputConvert = comboVar
        ##
        self.writeOptionsButton = FormatOptionsButton(
            "Write",
            self.writeOptions,
            self.formatVarOutputConvert,
            master=frame,
        )
        ##
        frame.pack(fill="x")
        ###################
        frame = tix.Frame(convertFrame)
        ##
        label = ttk.Label(frame, text="  Path:")
        label.pack(side="left")
        ##
        entry = tix.Entry(frame)
        entry.pack(side="left", fill="x", expand=True)
        entry.bind_all("<KeyPress>", self.outputEntryChanged)
        self.entryOutputConvert = entry
        ##
        button = ttk.Button(
            frame,
            text="Browse",
            command=self.browseOutputConvert,
            # bg="#f0f000",
            # activebackground="#f6f622",
        )
        button.pack(side="left")
        ##
        frame.pack(fill="x")
        #######
        frame = tix.Frame(convertFrame)
        label = ttk.Label(frame, text=" " * 15)
        label.pack(
            side="left",
            fill="x",
            expand=True,
        )
        button = ttk.Button(
            frame,
            text="Convert",
            command=self.convert,
            # bg="#00e000",
            # activebackground="#22f022",
        )
        button.pack(
            side="left",
            fill="x",
            expand=True,
        )
        ###
        frame.pack(fill="x")
        convertVpaned.add(frame)
        ######
        convertFrame.pack(fill="x")
        #################
        console = tix.Text(convertVpaned, height=15, background="#000000")
        # self.consoleH = 15
        # sbar = Tix.Scrollbar(
        #	convertVpaned,
        #	orien=Tix.VERTICAL,
        #	command=console.yview
        # )
        # sbar.grid ( row=0, column=1)
        # console["yscrollcommand"] = sbar.set
        # console.grid()
        console.pack(fill="both", expand=True)
        log.addHandler(TkTextLogHandler(console), )
        console.insert("end", "Console:\n")
        ####
        convertVpaned.add(console)
        convertVpaned.pack(fill="both", expand=True)
        self.console = console
        ##################
        # convertVpaned.grid()
        # bottomFrame.grid()
        # self.grid()
        #####################
        # lbox = Tix.Listbox(convertFrame)
        # lbox.insert(0, "aaaaaaaa", "bbbbbbbbbbbbbbbbbbbb")
        # lbox.pack(fill="x")
        ##############
        # __________________________ Reverse Tab __________________________ #
        # revFrame = tix.Frame(notebook.tabReverse)
        # revFrame.pack(fill="x")
        # ######################
        # frame = tix.Frame(revFrame)
        # ##
        # label = ttk.Label(frame, text="Read from format")
        # label.pack(side="left")
        # ##
        # comboVar = tk.StringVar()
        # combo = ttk.OptionMenu(
        # 	frame,
        # 	comboVar,
        # 	None, # default
        # 	*Glossary.readDesc,
        # )
        # combo.pack(side="left")
        # self.combobox_r_i = comboVar
        # ##
        # frame.pack(fill="x")
        # ###################
        # frame = tix.Frame(revFrame)
        # ##
        # label = ttk.Label(frame, text="  Path:")
        # label.pack(side="left")
        # ##
        # entry = tix.Entry(frame)
        # entry.pack(side="left", fill="x", expand=True)
        # # entry.bind_all("<KeyPress>", self.entry_r_i_changed)
        # self.entry_r_i = entry
        # ##
        # button = ttk.Button(
        # 	frame,
        # 	text="Browse",
        # 	command=self.reverseBrowseInput,
        # 	# bg="#f0f000",
        # 	# activebackground="#f6f622",
        # )
        # button.pack(side="left")
        # ##
        # button = ttk.Button(
        # 	frame,
        # 	text="Load",
        # 	command=self.reverseLoad,
        # 	# bg="#7777ff",
        # )
        # button.pack(side="left")
        # ###
        # frame.pack(fill="x")
        # ###################
        # frame = tix.Frame(revFrame)
        # ##
        # label = ttk.Label(frame, text="Output Tabfile")
        # label.pack(side="left")
        # ###
        # entry = tix.Entry(frame)
        # entry.pack(side="left", fill="x", expand=True)
        # # entry.bind_all("<KeyPress>", self.entry_r_i_changed)
        # self.entry_r_o = entry
        # ##
        # button = ttk.Button(
        # 	frame,
        # 	text="Browse",
        # 	command=self.reverseBrowseOutput,
        # 	# bg="#f0f000",
        # 	# activebackground="#f6f622",
        # )
        # button.pack(side="left")
        # ##
        # frame.pack(fill="x")
        # _________________________________________________________________ #

        aboutFrame2 = tix.Frame(aboutFrame)
        ##
        label = newLabelWithImage(aboutFrame2, file=logo)
        label.pack(side="left")
        ##
        ##
        label = ttk.Label(aboutFrame2,
                          text=f"PyGlossary\nVersion {core.VERSION}")
        label.pack(side="left")
        ##
        aboutFrame2.pack(side="top", fill="x")
        ##
        style = ttk.Style(self)
        style.configure("TNotebook", tabposition="wn")
        # ws => to the left (west) and to the bottom (south)
        # wn => to the left (west) and at top
        aboutNotebook = ttk.Notebook(aboutFrame, style="TNotebook")

        aboutFrame3 = tk.Frame(aboutNotebook)
        authorsFrame = tk.Frame(aboutNotebook)
        licenseFrame = tk.Frame(aboutNotebook)

        # tabImg = tk.PhotoImage(file=join(resDir, "dialog-information-22.png"))
        # tabImg = tk.PhotoImage(file=join(resDir, "author-22.png"))

        aboutNotebook.add(
            aboutFrame3,
            text="\n About  \n",
            # image=tabImg, # not working
            # compound=tk.TOP,
            # padding=50, # not working
        )
        aboutNotebook.add(
            authorsFrame,
            text="\nAuthors\n",
        )
        aboutNotebook.add(
            licenseFrame,
            text="\nLicense\n",
        )

        label = newReadOnlyText(
            aboutFrame3,
            text=f"{aboutText}\nHome page: {homePage}",
            font=("DejaVu Sans", 11, ""),
        )
        label.pack(fill="x")

        authorsText = "\n".join(authors)
        authorsText = authorsText.replace("\t", "    ")
        label = newReadOnlyText(
            authorsFrame,
            text=authorsText,
            font=("DejaVu Sans", 11, ""),
        )
        label.pack(fill="x")

        label = newReadOnlyText(
            licenseFrame,
            text=licenseText,
            font=("DejaVu Sans", 11, ""),
        )
        label.pack(fill="x")

        aboutNotebook.pack(fill="x")

        aboutFrame.pack(fill="x")
        # _________________________________________________________________ #

        notebook.pack(fill="both", expand=True)

        # _________________________________________________________________ #

        statusBarframe = tix.Frame(self)
        clearB = ttk.Button(
            statusBarframe,
            text="Clear",
            command=self.console_clear,
            # bg="black",
            # fg="#ffff00",
            # activebackground="#333333",
            # activeforeground="#ffff00",
        )
        clearB.pack(side="left")
        ####
        label = ttk.Label(statusBarframe, text="Verbosity")
        label.pack(side="left")
        ##
        comboVar = tk.StringVar()
        combo = ttk.OptionMenu(
            statusBarframe,
            comboVar,
            log.getVerbosity(),  # default
            0,
            1,
            2,
            3,
            4,
        )
        comboVar.trace("w", self.verbosityChanged)
        combo.pack(side="left")
        self.verbosityCombo = comboVar
        #####
        pbar = ProgressBar(statusBarframe, width=400)
        pbar.pack(side="left", fill="x", expand=True)
        self.pbar = pbar
        statusBarframe.pack(fill="x")
        self.progressTitle = ""
        # _________________________________________________________________ #
        frame3 = tix.Frame(self)
        closeB = ttk.Button(
            frame3,
            text="Close",
            command=rootWin.quit,
            # bg="#ff0000",
            # activebackground="#ff5050",
        )
        closeB.pack(side="right")
        frame3.pack(fill="x")
        # _________________________________________________________________ #

        centerWindow(rootWin)
        # show the window
        if os.sep == "\\":  # Windows
            rootWin.attributes('-alpha', 1.0)
        else:  # Linux
            rootWin.deiconify()
        if path:
            self.entryInputConvert.insert(0, path)
            self.inputEntryChanged()
            self.outputEntryChanged()
            self.load()
Ejemplo n.º 10
0
 def __init__(self, path='', **options):
     self.running = False
     self.glos = Glossary(ui=self)
     self.pref = {}
     self.pref_load(**options)
     #############################################
     master = tix.Tk()
     tix.Frame.__init__(self, master)
     master.title('PyGlossary (Tkinter)')
     master.resizable(True, False)
     ########
     #icon = Tix.BitmapImage(file=xbmLogo)
     #master.wm_iconbitmap(icon)
     #master.wm_iconbitmap(xbmLogo)
     #bit = Tix.PhotoImage(file=join(uiDir, 'pyglossary.gif'), format='gif')
     #lb = Tix.Label(None,image=bit)
     #lb.grid()
     #master.iconwindow(icon, 'pyglossary')
     #master.wm_iconimage(bit)
     #master.wm_iconname('dot')
     #help(master.wm_iconbitmap)
     #for x in dir(master):
     #    if 'wm_' in x:
     #        log.debug(x)
     master.wm_iconbitmap('@%s' % xbmLogo)
     ########
     self.pack(fill='x')
     #master.bind('<Configure>', self.resized)
     ######################
     self.running = False
     self.glos = Glossary(ui=self)
     self.pref = {}
     self.pref_load()
     self.pathI = ''
     self.pathO = ''
     self.fcd_dir = join(homeDir, 'Desktop')
     ######################
     vpaned = tk.PanedWindow(self, orient=tk.VERTICAL)
     notebook = tix.NoteBook(vpaned)
     notebook.add('tab1', label='Convert', underline=0)
     notebook.add('tab2', label='Reverse', underline=0)
     convertFrame = tix.Frame(notebook.tab1)
     ######################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text='Read from format')
     label.pack(side='left')
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc)
     #comboVar.set(Glossary.readDesc[0])
     comboVar.set(noneItem)
     combo.pack(side='left')
     self.combobox_i = comboVar
     ##
     frame.pack(fill='x')
     ###################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text='  Path:')
     label.pack(side='left')
     ##
     entry = tix.Entry(frame)
     entry.pack(side='left', fill='x', expand=True)
     entry.bind_all('<KeyPress>', self.entry_changed)
     self.entry_i = entry
     ##
     button = tix.Button(
         frame,
         text='Browse',
         command=self.browse_i,
         #bg='#f0f000',
         #activebackground='#f6f622',
     )
     button.pack(side='left')
     ##
     frame.pack(fill='x')
     ######################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text='Write to format    ')
     label.pack(side='left')
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.writeDesc)
     #comboVar.set(Glossary.writeDesc[0])
     comboVar.set(noneItem)
     combo.pack(side='left')
     combo.bind('<Configure>', self.combobox_o_changed)
     self.combobox_o = comboVar
     ##
     frame.pack(fill='x')
     ###################
     frame = tix.Frame(convertFrame)
     ##
     label = tix.Label(frame, text='  Path:')
     label.pack(side='left')
     ##
     entry = tix.Entry(frame)
     entry.pack(side='left', fill='x', expand=True)
     #entry.bind_all('<KeyPress>', self.entry_changed)
     self.entry_o = entry
     ##
     button = tix.Button(
         frame,
         text='Browse',
         command=self.browse_o,
         #bg='#f0f000',
         #activebackground='#f6f622',
     )
     button.pack(side='left')
     ##
     frame.pack(fill='x')
     #######
     frame = tix.Frame(convertFrame)
     label = tix.Label(frame, text=' ' * 15)
     label.pack(
         side='left',
         fill='x',
         expand=True,
     )
     button = tix.Button(
         frame,
         text='Convert',
         command=self.convert,
         #bg='#00e000',
         #activebackground='#22f022',
     )
     button.pack(
         side='left',
         fill='x',
         expand=True,
     )
     ###
     frame.pack(fill='x')
     ######
     convertFrame.pack(fill='x')
     vpaned.add(notebook)
     #################
     console = tix.Text(vpaned, height=15, background='#000000')
     #self.consoleH = 15
     #sbar = Tix.Scrollbar(vpaned, orien=Tix.VERTICAL, command=console.yview)
     #sbar.grid ( row=0, column=1)
     #console['yscrollcommand'] = sbar.set
     #console.grid()
     console.pack(fill='both', expand=True)
     log.addHandler(TkTextLogHandler(console), )
     console.insert('end', 'Console:\n')
     ####
     vpaned.add(console)
     vpaned.pack(fill='both', expand=True)
     self.console = console
     ##################
     frame2 = tix.Frame(self)
     clearB = tix.Button(
         frame2,
         text='Clear',
         command=self.console_clear,
         #bg='black',
         #fg='#ffff00',
         #activebackground='#333333',
         #activeforeground='#ffff00',
     )
     clearB.pack(side='left')
     ####
     label = tix.Label(frame2, text='Verbosity')
     label.pack(side='left')
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(
         frame2,
         comboVar,
         0,
         1,
         2,
         3,
         4,
     )
     comboVar.set(log.getVerbosity())
     comboVar.trace('w', self.verbosityChanged)
     combo.pack(side='left')
     self.verbosityCombo = comboVar
     #####
     pbar = ProgressBar(frame2, width=400)
     pbar.pack(side='left', fill='x', expand=True)
     self.pbar = pbar
     frame2.pack(fill='x')
     self.progressTitle = ''
     #############
     #vpaned.grid()
     #bottomFrame.grid()
     #self.grid()
     #####################
     #lbox = Tix.Listbox(convertFrame)
     #lbox.insert(0, 'aaaaaaaa', 'bbbbbbbbbbbbbbbbbbbb')
     #lbox.pack(fill='x')
     ##############
     frame3 = tix.Frame(self)
     aboutB = tix.Button(
         frame3,
         text='About',
         command=self.about_clicked,
         #bg='#e000e0',
         #activebackground='#f030f0',
     )
     aboutB.pack(side='right')
     closeB = tix.Button(
         frame3,
         text='Close',
         command=self.quit,
         #bg='#ff0000',
         #activebackground='#ff5050',
     )
     closeB.pack(side='right')
     frame3.pack(fill='x')
     ############### Reverse Tab ####################
     revFrame = tix.Frame(notebook.tab2)
     revFrame.pack(fill='x')
     ######################
     frame = tix.Frame(revFrame)
     ##
     label = tix.Label(frame, text='Read from format')
     label.pack(side='left')
     ##
     comboVar = tk.StringVar()
     combo = tk.OptionMenu(frame, comboVar, *Glossary.readDesc)
     #comboVar.set(Glossary.readDesc[0])
     comboVar.set(noneItem)
     combo.pack(side='left')
     self.combobox_r_i = comboVar
     ##
     frame.pack(fill='x')
     ###################
     frame = tix.Frame(revFrame)
     ##
     label = tix.Label(frame, text='  Path:')
     label.pack(side='left')
     ##
     entry = tix.Entry(frame)
     entry.pack(side='left', fill='x', expand=True)
     #entry.bind_all('<KeyPress>', self.entry_r_i_changed)
     self.entry_r_i = entry
     ##
     button = tix.Button(
         frame,
         text='Browse',
         command=self.r_browse_i,
         #bg='#f0f000',
         #activebackground='#f6f622',
     )
     button.pack(side='left')
     ##
     button = tix.Button(
         frame,
         text='Load',
         command=self.r_load,
         #bg='#7777ff',
     )
     button.pack(side='left')
     ###
     frame.pack(fill='x')
     ###################
     frame = tix.Frame(revFrame)
     ##
     label = tix.Label(frame, text='Output Tabfile')
     label.pack(side='left')
     ###
     entry = tix.Entry(frame)
     entry.pack(side='left', fill='x', expand=True)
     #entry.bind_all('<KeyPress>', self.entry_r_i_changed)
     self.entry_r_o = entry
     ##
     button = tix.Button(
         frame,
         text='Browse',
         command=self.r_browse_o,
         #bg='#f0f000',
         #activebackground='#f6f622',
     )
     button.pack(side='left')
     ##
     frame.pack(fill='x')
     ##############################
     if path != '':
         self.entry_i.insert(0, path)
         self.entry_changed()
         self.load()
Ejemplo n.º 11
0
    def __init__(self, path="", **options):
        self.glos = Glossary(ui=self)
        self.pref = {}
        self.pref_load(**options)
        #############################################
        rootWin = self.rootWin = tix.Tk()
        # a hack that hides the window until we move it to the center of screen
        if os.sep == "\\":  # Windows
            rootWin.attributes('-alpha', 0.0)
        else:  # Linux
            rootWin.withdraw()
        tix.Frame.__init__(self, rootWin)
        rootWin.title("PyGlossary (Tkinter)")
        rootWin.resizable(True, False)
        ########
        set_window_icon(rootWin)
        rootWin.bind('<Escape>', lambda e: rootWin.quit())
        ########
        self.pack(fill="x")
        # rootWin.bind("<Configure>", self.resized)
        ######################
        self.glos = Glossary(ui=self)
        self.pref = {}
        self.pref_load()
        self.pathI = ""
        self.pathO = ""
        fcd_dir = join(homeDir, "Desktop")
        if isfile(self.fcd_dir_save_path):
            try:
                with open(self.fcd_dir_save_path, encoding="utf-8") as fp:
                    fcd_dir = fp.read().strip("\n")
            except Exception:
                log.exception("")
        self.fcd_dir = fcd_dir
        ######################
        vpaned = ttk.PanedWindow(self, orient=tk.VERTICAL)
        notebook = tix.NoteBook(vpaned)
        notebook.add("tabConvert", label="Convert", underline=0)
        # notebook.add("tabReverse", label="Reverse", underline=0)
        convertFrame = tix.Frame(notebook.tabConvert)
        ######################
        frame = tix.Frame(convertFrame)
        ##
        label = ttk.Label(frame, text="Read from format")
        label.pack(side="left")
        ##
        comboVar = tk.StringVar()
        combo = ttk.OptionMenu(
            frame,
            comboVar,
            None,  # default
            *Glossary.readDesc,
        )
        combo.pack(side="left")
        comboVar.trace("w", self.inputComboChanged)
        self.formatVarInputConvert = comboVar
        ##
        self.readOptions = {}  # type: Dict[str, Any]
        self.writeOptions = {}  # type: Dict[str, Any]
        ##
        self.readOptionsButton = FormatOptionsButton(
            "Read",
            self.readOptions,
            self.formatVarInputConvert,
            master=frame,
        )
        ##
        frame.pack(fill="x")
        ###################
        frame = tix.Frame(convertFrame)
        ##
        label = ttk.Label(frame, text="  Path:")
        label.pack(side="left")
        ##
        entry = tix.Entry(frame)
        entry.pack(side="left", fill="x", expand=True)
        entry.bind_all("<KeyPress>", self.inputEntryChanged)
        self.entryInputConvert = entry
        ##
        button = ttk.Button(
            frame,
            text="Browse",
            command=self.browseInputConvert,
            # bg="#f0f000",
            # activebackground="#f6f622",
        )
        button.pack(side="left")
        ##
        frame.pack(fill="x")
        ######################
        frame = tix.Frame(convertFrame)
        ##
        label = ttk.Label(frame, text="Write to format    ")
        label.pack(side="left")
        ##
        comboVar = tk.StringVar()
        combo = ttk.OptionMenu(
            frame,
            comboVar,
            None,  # default
            *Glossary.writeDesc,
        )
        combo.pack(side="left")
        comboVar.trace("w", self.outputComboChanged)
        self.formatVarOutputConvert = comboVar
        ##
        self.writeOptionsButton = FormatOptionsButton(
            "Write",
            self.writeOptions,
            self.formatVarOutputConvert,
            master=frame,
        )
        ##
        frame.pack(fill="x")
        ###################
        frame = tix.Frame(convertFrame)
        ##
        label = ttk.Label(frame, text="  Path:")
        label.pack(side="left")
        ##
        entry = tix.Entry(frame)
        entry.pack(side="left", fill="x", expand=True)
        entry.bind_all("<KeyPress>", self.outputEntryChanged)
        self.entryOutputConvert = entry
        ##
        button = ttk.Button(
            frame,
            text="Browse",
            command=self.browseOutputConvert,
            # bg="#f0f000",
            # activebackground="#f6f622",
        )
        button.pack(side="left")
        ##
        frame.pack(fill="x")
        #######
        frame = tix.Frame(convertFrame)
        label = ttk.Label(frame, text=" " * 15)
        label.pack(
            side="left",
            fill="x",
            expand=True,
        )
        button = ttk.Button(
            frame,
            text="Convert",
            command=self.convert,
            # bg="#00e000",
            # activebackground="#22f022",
        )
        button.pack(
            side="left",
            fill="x",
            expand=True,
        )
        ###
        frame.pack(fill="x")
        ######
        convertFrame.pack(fill="x")
        vpaned.add(notebook)
        #################
        console = tix.Text(vpaned, height=15, background="#000000")
        # self.consoleH = 15
        # sbar = Tix.Scrollbar(
        #	vpaned,
        #	orien=Tix.VERTICAL,
        #	command=console.yview
        # )
        # sbar.grid ( row=0, column=1)
        # console["yscrollcommand"] = sbar.set
        # console.grid()
        console.pack(fill="both", expand=True)
        log.addHandler(TkTextLogHandler(console), )
        console.insert("end", "Console:\n")
        ####
        vpaned.add(console)
        vpaned.pack(fill="both", expand=True)
        self.console = console
        ##################
        frame2 = tix.Frame(self)
        clearB = ttk.Button(
            frame2,
            text="Clear",
            command=self.console_clear,
            # bg="black",
            # fg="#ffff00",
            # activebackground="#333333",
            # activeforeground="#ffff00",
        )
        clearB.pack(side="left")
        ####
        label = ttk.Label(frame2, text="Verbosity")
        label.pack(side="left")
        ##
        comboVar = tk.StringVar()
        combo = ttk.OptionMenu(
            frame2,
            comboVar,
            log.getVerbosity(),  # default
            0,
            1,
            2,
            3,
            4,
        )
        comboVar.trace("w", self.verbosityChanged)
        combo.pack(side="left")
        self.verbosityCombo = comboVar
        #####
        pbar = ProgressBar(frame2, width=400)
        pbar.pack(side="left", fill="x", expand=True)
        self.pbar = pbar
        frame2.pack(fill="x")
        self.progressTitle = ""
        #############
        # vpaned.grid()
        # bottomFrame.grid()
        # self.grid()
        #####################
        # lbox = Tix.Listbox(convertFrame)
        # lbox.insert(0, "aaaaaaaa", "bbbbbbbbbbbbbbbbbbbb")
        # lbox.pack(fill="x")
        ##############
        frame3 = tix.Frame(self)
        aboutB = ttk.Button(
            frame3,
            text="About",
            command=self.about_clicked,
            # bg="#e000e0",
            # activebackground="#f030f0",
        )
        aboutB.pack(side="right")
        closeB = ttk.Button(
            frame3,
            text="Close",
            command=rootWin.quit,
            # bg="#ff0000",
            # activebackground="#ff5050",
        )
        closeB.pack(side="right")
        frame3.pack(fill="x")
        # __________________________ Reverse Tab __________________________ #
        # revFrame = tix.Frame(notebook.tabReverse)
        # revFrame.pack(fill="x")
        # ######################
        # frame = tix.Frame(revFrame)
        # ##
        # label = ttk.Label(frame, text="Read from format")
        # label.pack(side="left")
        # ##
        # comboVar = tk.StringVar()
        # combo = ttk.OptionMenu(
        # 	frame,
        # 	comboVar,
        # 	None, # default
        # 	*Glossary.readDesc,
        # )
        # combo.pack(side="left")
        # self.combobox_r_i = comboVar
        # ##
        # frame.pack(fill="x")
        # ###################
        # frame = tix.Frame(revFrame)
        # ##
        # label = ttk.Label(frame, text="  Path:")
        # label.pack(side="left")
        # ##
        # entry = tix.Entry(frame)
        # entry.pack(side="left", fill="x", expand=True)
        # # entry.bind_all("<KeyPress>", self.entry_r_i_changed)
        # self.entry_r_i = entry
        # ##
        # button = ttk.Button(
        # 	frame,
        # 	text="Browse",
        # 	command=self.reverseBrowseInput,
        # 	# bg="#f0f000",
        # 	# activebackground="#f6f622",
        # )
        # button.pack(side="left")
        # ##
        # button = ttk.Button(
        # 	frame,
        # 	text="Load",
        # 	command=self.reverseLoad,
        # 	# bg="#7777ff",
        # )
        # button.pack(side="left")
        # ###
        # frame.pack(fill="x")
        # ###################
        # frame = tix.Frame(revFrame)
        # ##
        # label = ttk.Label(frame, text="Output Tabfile")
        # label.pack(side="left")
        # ###
        # entry = tix.Entry(frame)
        # entry.pack(side="left", fill="x", expand=True)
        # # entry.bind_all("<KeyPress>", self.entry_r_i_changed)
        # self.entry_r_o = entry
        # ##
        # button = ttk.Button(
        # 	frame,
        # 	text="Browse",
        # 	command=self.reverseBrowseOutput,
        # 	# bg="#f0f000",
        # 	# activebackground="#f6f622",
        # )
        # button.pack(side="left")
        # ##
        # frame.pack(fill="x")
        # _________________________________________________________________ #

        centerWindow(rootWin)
        # show the window
        if os.sep == "\\":  # Windows
            rootWin.attributes('-alpha', 1.0)
        else:  # Linux
            rootWin.deiconify()
        if path:
            self.entryInputConvert.insert(0, path)
            self.inputEntryChanged()
            self.outputEntryChanged()
            self.load()