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

Reply via email to