def add_scrolledtext( window, width=20, height=5, wrap=tk.WORD, column=0, row=0, columnspan=3): scroll_text = scrolledtext.ScrolledText( window, width=width, height=height, wrap=wrap) scroll_text.grid(column=column, row=row, columnspan=3) return scroll_text
def __init__(self,place,size,row,column,columnspan,sticky="n",padx=0): self.place=place self.size=size self.row=row self.column=column self.columnspan=columnspan self.sticky=sticky self.padx=padx self.self=scrolledtext.ScrolledText(self.place,height=20,width=80,bg="#121212", relief="flat",foreground="#d1d1d1") self.self['font']=font.Font(family="Consolas",size=self.size) self.self.grid(row=self.row,column=self.column,columnspan=self.columnspan,sticky=self.sticky,padx=self.padx) self.self.config(state="disabled")
def createWidget(self): label1 = ttk.Label(self.win, text=u'请输入城市名:') label1.grid(sticky=tk.W, row=0, column=0) self.cityName = tk.StringVar() searchBox = ttk.Entry(self.win, width=12, textvariable=self.cityName) searchBox.grid(sticky=u'WE', row=0, column=1) searchBox.focus() searchBtn = ttk.Button(self.win, text=u'Search', command=self._searchBtn) searchBtn.grid(sticky=u'WE', row=1, columnspan=2) self.info = scrolledtext.ScrolledText(self.win, width=60, height=15, wrap=tk.WORD) self.info.grid(column=0, sticky=u'WE', columnspan=2)
def erstelleEingabeFenster(self): """ Erstellung des Eingabefensters """ # Label self.label = tk.Label( text= "Geben Sie im ersten Feld die Straßenkarte \nund im zweiten Feld die maximale Verlängerung in Prozent ein" ) self.label.pack(side=tk.TOP) # Eingabefeld für das Straßennetz self.textfeld_straßenkarte = scrolledtext.ScrolledText(self, width=40, height=10) self.textfeld_straßenkarte.insert( tk.END, "1. Feld: Straßennetz im Format des BwInf bitte hier einfügen:") self.textfeld_straßenkarte.pack(side=tk.TOP, fill=tk.BOTH) # Hintergrund des Eingabefelds wird auf helles Rot gesetzt self.textfeld_straßenkarte['bg'] = '#fed8d8' # Eingabe der maximalen Verlängerung self.textfeld_maximaleVerlängerung = tk.Entry(self, width=40) self.textfeld_maximaleVerlängerung.insert( tk.END, "2. Feld: maximalen Verlängerung in Prozent") self.textfeld_maximaleVerlängerung.pack(side=tk.TOP) # Hintergrund des Eingabefelds wird ebenfalls auf helles Rot gesetzt self.textfeld_maximaleVerlängerung['bg'] = '#fed7c7' self.erweiterung = tk.IntVar() self.checkbox_erweiterung = tk.Checkbutton( text="Erweiterung: Weg mit min. Anzahl Abbiegen ohne Begrenzung", variable=self.erweiterung) self.checkbox_erweiterung.pack(side=tk.TOP) # Button zum Starten self.button_start = tk.Button(self, width=10, height=5, text="Starte Berechnungen", command=self.starte) self.button_start.pack(side=tk.BOTTOM, fill=tk.BOTH) self.button_start['bg'] = '#49A'
def __init__(self, top=None, converter=None): if (converter is None): raise Exception("Please specifiy a converter") else: self._converter = converter # Configuration handling variables scriptPath = os.path.dirname(os.path.abspath(__file__)) confFileFldr = os.path.join( os.path.dirname(os.path.normpath(scriptPath)), "psmusicxmlconv-conf") if not os.path.exists(confFileFldr): os.makedirs(confFileFldr) self._confFilePath = os.path.join(confFileFldr, "conf.ini") self._convConfigHandler = ConverterConfigHandler(self._confFilePath) # DEFINE SOME USEFUL VARIABLES FOR THE APPLICATION ''' NOTE: Please use absolute paths for these No "./path/foo/" OR "~/path/foo/" or just "foo" ''' '''This class configures and populates the toplevel window. top is the toplevel containing window.''' _bgcolor = '#d9d9d9' # X11 color: 'gray85' _fgcolor = '#000000' # X11 color: 'black' _compcolor = '#d9d9d9' # X11 color: 'gray85' _ana1color = '#d9d9d9' # X11 color: 'gray85' _ana2color = '#d9d9d9' # X11 color: 'gray85' top.geometry("577x681+648+0") top.title("Musescore -> Planeshift -- Music XML Converter") font11 = "-family Arial -size 10 -weight bold -slant roman " \ "-underline 0 -overstrike 0" font9 = "-family Arial -size -12 -weight normal -slant roman " \ "-underline 0 -overstrike 0" # configure section controls self.lblTitlConfigure = Label(top) self.lblTitlConfigure.place(relx=0.03, rely=0.0, height=28, width=225) self.lblTitlConfigure.configure(activebackground="#f9f9f9") self.lblTitlConfigure.configure(anchor=W) self.lblTitlConfigure.configure(font=font11) self.lblTitlConfigure.configure(text='''Configure:''') # configure the default source MusicXML directory (MC = Musescore) self.lblMCXMLSrcFldr = Label(top) self.lblMCXMLSrcFldr.place(relx=0.03, rely=0.04, height=28, width=225) self.lblMCXMLSrcFldr.configure(activebackground="#f9f9f9") self.lblMCXMLSrcFldr.configure(anchor=W) self.lblMCXMLSrcFldr.configure( text='''Musescore MusicXML export directory''') self.lblMCXMLSrcFldr.configure(width=225) self.entMCXMLSrcFldr = Entry(top) self.entMCXMLSrcFldr.place(relx=0.03, rely=0.09, relheight=0.06, relwidth=0.67) self.entMCXMLSrcFldr.configure(background="white") self.entMCXMLSrcFldr.configure(font="TkFixedFont") self.entMCXMLSrcFldr.configure(selectbackground="#c4c4c4") self.entMCXMLSrcFldr.insert( 0, self._convConfigHandler.readMusescoreScoresDefaultFldr()) READONLY = 'readonly' self.entMCXMLSrcFldr.configure(state=READONLY) self.btnMCSrcFldr = Button(top) self.btnMCSrcFldr.place(relx=0.73, rely=0.09, height=36, width=133) self.btnMCSrcFldr.configure(activebackground="#d9d9d9") self.btnMCSrcFldr.configure(text='''Browse''') self.btnMCSrcFldr.configure(command=self.setMusescoreScoresDefaultFldr) # configure the default PlaneShift MusicXML directory (PS = PlaneShift) self.lblPSSheetDestFldr = Label(top) self.lblPSSheetDestFldr.place(relx=0.03, rely=0.15, height=28, width=205) self.lblPSSheetDestFldr.configure(activebackground="#f9f9f9") self.lblPSSheetDestFldr.configure(anchor=W) self.lblPSSheetDestFldr.configure( text='''Planeshift scores destination folder''') self.entPSSheetDestFldr = Entry(top) self.entPSSheetDestFldr.place(relx=0.03, rely=0.2, relheight=0.06, relwidth=0.67) self.entPSSheetDestFldr.configure(background="white") self.entPSSheetDestFldr.configure(font="TkFixedFont") self.entPSSheetDestFldr.configure(selectbackground="#c4c4c4") self.entPSSheetDestFldr.insert( 0, self._convConfigHandler.readPlaneShiftScoresDefaultFldr()) READONLY = 'readonly' self.entPSSheetDestFldr.configure(state=READONLY) self.btnPSDestFldr = Button(top) self.btnPSDestFldr.place(relx=0.73, rely=0.2, height=36, width=133) self.btnPSDestFldr.configure(activebackground="#d9d9d9") self.btnPSDestFldr.configure(text='''Browse''') self.btnPSDestFldr.configure(command=self.setDefaultDestScoreDir) # CONVERTER section controls self.lblTitlConverter = Label(top) self.lblTitlConverter.place(relx=0.03, rely=0.26, height=28, width=225) self.lblTitlConverter.configure(activebackground="#f9f9f9") self.lblTitlConverter.configure(anchor=W) self.lblTitlConverter.configure(font=font11) self.lblTitlConverter.configure(text='''Converter:''') self.endSrcFile = Entry(top) self.endSrcFile.place(relx=0.03, rely=0.35, relheight=0.06, relwidth=0.67) self.endSrcFile.configure(background="white") self.endSrcFile.configure(font="TkFixedFont") self.endSrcFile.configure(width=386) self.endDestFile = Entry(top) self.endDestFile.place(relx=0.03, rely=0.47, relheight=0.06, relwidth=0.67) self.endDestFile.configure(background="white") self.endDestFile.configure(font="TkFixedFont") self.endDestFile.configure(selectbackground="#c4c4c4") self.Label1 = Label(top) self.Label1.place(relx=0.03, rely=0.43, height=28, width=205) self.Label1.configure(anchor=W) self.Label1.configure(text='''Destination File''') self.Label1.configure(width=205) self.Label2 = Label(top) self.Label2.place(relx=0.03, rely=0.3, height=28, width=205) self.Label2.configure(activebackground="#f9f9f9") self.Label2.configure(anchor=W) self.Label2.configure(text='''Source File''') self.btnSrcFile = Button(top) self.btnSrcFile.place(relx=0.73, rely=0.35, height=36, width=133) self.btnSrcFile.configure(activebackground="#d9d9d9") self.btnSrcFile.configure(text='''Browse''') self.btnSrcFile.configure(width=133) self.btnSrcFile.configure(command=self.browseSrcFile) self.btnDestFile = Button(top) self.btnDestFile.place(relx=0.73, rely=0.48, height=36, width=133) self.btnDestFile.configure(activebackground="#d9d9d9") self.btnDestFile.configure(text='''Browse''') self.btnDestFile.configure(command=self.browseDestFile) self.btnConvXML = Button(top) self.btnConvXML.place(relx=0.03, rely=0.6, height=66, width=538) self.btnConvXML.configure(activebackground="#d9d9d9") self.btnConvXML.configure(text='''ConvertXML''') self.btnConvXML.configure(width=534) self.btnConvXML.configure(command=self.convertXMLButtonAction) self.statusMsg = tkst.ScrolledText(top) self.statusMsg.place(relx=0.03, rely=0.73, relheight=0.23, relwidth=0.93) self.statusMsg.insert( END, '''Status message of conversion will appear here''') self.statusMsg.configure(width=534) self.statusMsg.configure(state=DISABLED)
top.pack() # Pack top frame bottom2.pack() # pack bottom2 frame bottom.pack(side=RIGHT, anchor="sw") # Pack bottom frame l1 = Label(top, text="Youtube URL:") l1.pack(side=LEFT) e1 = Entry(top) e1.pack(side=LEFT) l2 = Label(top, text="Remote System:") l2.pack(side=LEFT) e2 = Entry(top) e2.pack(side=LEFT) # l = Label(root) t = tkscrolled.ScrolledText(bottom2, state='disabled', width=75, height=16) t.pack() old_stdout = sys.stdout class StdoutRedirector(object): def __init__(self, text_area): self.text_area = text_area def write(self, str): self.text_area.insert(END, str) self.text_area.see(END) def callback():