Hi, I've write a huge biotech program ( an IDE for synthetic biology ), and am slowly outgrowing TKINTER.
Has anybody out there merged a little bit of TCL direct calls from Python 3.X to get more freedom then TKINTER for just some Windows ? How about bold stories of successes ( yours, not mine ) on porting to stupid MS Windows from linux ? Adding threading makes TKinter hard ( but not impossible ) to manage. Also, a little bit here and there obviously exceeds TKINTERs goals. I wish it looked better, but its 'ok'. I believe X11 IO is considerably superior for serious work the HTML. I mean 'serious' work. with lots of multi media windows. I am not talking about fb "Oh ! There is a window it opened inthe corner !"... trivial functionality. Must be a uber expert out there. Is it you ? As attached. and little code. Coloring text makes me realise; some of this is pretty indirect, though this is quite well thought out, like all of TKINTER. Regards, Daniel B. Kolis """ An important worked example of text color and other look dynamic changes. This is the righ way to do this for fast changes ! 20 Jun 2023 22:11 """ import tkinter as tk from tkinter.font import Font class Pad( tk.Frame ): def __init__( self, parent, *args, **kwargs ): tk.Frame.__init__( self, parent, *args, **kwargs ) self.toolbar = tk.Frame( self, bg="#eee" ) self.toolbar.pack( side="top", fill="x" ) self.bold_btn = tk.Button( self.toolbar, text="CHANGE highlighted", command=self.make_Change_Highlighted ) self.bold_btn.pack( side="left" ) self.bold_btn = tk.Button( self.toolbar, text="CHANGE H.B.", command=self.make_Change_Hb ) self.bold_btn.pack( side="left" ) self.bold_btn = tk.Button( self.toolbar, text="Delete a char", command=self.make_Change_Delete ) self.bold_btn.pack( side="left" ) self.clear_btn = tk.Button( self.toolbar, text="Clear", command=self.clear_Some ) self.clear_btn.pack( side="left" ) # Applies this font self.bold_font = Font( family="Helvetica", size=14, weight="bold" ) self.da_Text = tk.Text( self ) self.da_Text.insert( "end", "Selectable parts of text is fun.\nSo is a happy birthday, right ?" ) self.da_Text.focus( ) self.da_Text.pack( fill="both", expand=True ) # configuring a tag called dingo-something self.da_Text.tag_configure( "reddingo", font=self.bold_font, foreground = "Red" ) self.da_Text.tag_configure( "bluedingo", font=self.bold_font, background = "Yellow", foreground = "Blue" ) # Button CB def make_Change_Delete( self ): self.da_Text.delete( '1.0', '1.1' ) # Button CB def make_Change_Highlighted( self ): # tk.TclError exception is raised if not text is selected try: self.da_Text.tag_add( "reddingo", "sel.first", "sel.last" ) except tk.TclError: tttttt = 569 # Button CB def make_Change_Hb( self ): try: lin_Idx = 2; col_Idx = 8 self.da_Text.tag_add( "bluedingo", f"{ lin_Idx }.{ col_Idx }", f"{ lin_Idx }.{ col_Idx + len( 'happy birthday' ) }" ) except: gggggg = 457 # Button CB def clear_Some( self ): self.da_Text.tag_remove( "reddingo", "1.0", 'end' ) self.da_Text.tag_remove( "bluedingo", "1.0", 'end' ) # Main body really def is_Main(): root = tk.Tk() Pad( root ).pack( expand=1, fill="both" ) root.mainloop() # Go if __name__ == "__main__": is_Main() Document end my ref: 21 Jun 2023, https://groups.google.com/g/comp.lang.python, Daniel B. Kolis, nafl -- https://mail.python.org/mailman/listinfo/python-list