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