{"flag":true,"single":true,"pageTitle":"TKinter create GUI in python","post":{"id":302,"user_id":"1","slug":"tkinter-create-gui-in-python-9jdr","title":"TKinter create GUI in python","body":"<p>Tkinter &minus; Main Tkinter module and few others:<br>tkinter.colorchooser,&nbsp;tkinter.commondialog ,&nbsp;tkinter.filedialog,&nbsp;tkinter.font,&nbsp;tkinter.messagebox,&nbsp;tkinter.scrolledtext,&nbsp;tkinter.simpledialog,&nbsp;tkinter.ttk<\/p>\r\n<p><strong>How to create:&nbsp;<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>import tkinter as tk                          #step 1 to import\r\n\r\nwindow = tk.Tk()                             #step 2 Create the main window\r\n                                                        ############ step 3 add widgets here\r\nw = tk.Button ( window, text =\"Hello\" ) \r\nw.place(x=50,y=50)\r\n\r\nwindow.mainloop()                         # 4. Start the main event loop<\/code><\/pre>\r\n<p><strong>OOP BASED CODE: IF COMPLEX CODE USE LIKE BELOW<br><\/strong><\/p>\r\n<pre class=\"language-markup\"><code>import tkinter as tk\r\nclass App(tk.Tk):\r\n   def __init__(self):\r\n      super().__init__()\r\n\r\napp = App()\r\napp.mainloop()<\/code><\/pre>\r\n<p><strong>PLACEMENT<\/strong>: placed elements on main window<br>.pack(), .place(), .grid()<br><br><\/p>\r\n<p><strong>WIDGETS:<br>1. Button<\/strong> w = Button ( master, option=value, ... )<\/p>\r\n<p><strong>activebackground <\/strong>,<strong>bg<\/strong>, <strong>activeforeground<\/strong>, <strong>fg&nbsp; &nbsp;<\/strong>= color name || change backgrounds and text colors<br><strong>bd<\/strong>: border width in pixels ie bd=\"6\"<br><strong>font <\/strong>= to set font<br><strong>height<\/strong>:Height of the button in text lines<br><strong>image<\/strong>: display image in place of text<br><strong>justify<\/strong>: CENTER, LEFT, RIGHT<br><strong>padx<\/strong>, pady : paddings on x axis and y axis<br><strong>state<\/strong>: disabled,normal<br><strong>underline <\/strong>= 1|-1 (-1 means not underline)<br><strong>width <\/strong>= pixels<br><strong>wraplength <\/strong>= pixels #wrap text<br><br><strong>command = A procedure to be called every time the user changes the state of this element<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>window = tk.Tk()\r\nw = tk.Button ( window, text =\"Hello\", activeforeground =\"red\",bd=\"6\", height=\"3\" ,state=\"disabled\",width=\"33\",wraplength=\"1\")\r\nw.place(x=50,y=50)<\/code><\/pre>\r\n<p><strong>2. check button <\/strong>w = Checkbutton ( master, option, ... )<\/p>\r\n<p>Onvalue : when checked the value default 1<br>Offvalue: when unched the value default 0<br>variable = IntVar() : tracks the current state of the checkbutton : <strong>from tkinter import Tk, IntVar&nbsp; OR from tkinter import *<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>CheckVar1 = IntVar()\r\nC1 = Checkbutton(window, text = \"Music\", variable = CheckVar1, onvalue = 1, offvalue = 0, height=5, width = 20)\r\nC1.pack()<\/code><\/pre>\r\n<p><strong>3. Entry <\/strong>w = Entry( master, option, ... )<br><strong>show=\"* || ANY Charter\" <\/strong>: by default text<br><strong>get()&nbsp;<\/strong>Returns the entry's current text as a string.<br><strong>select_clear() <\/strong>Clears the selection.<\/p>\r\n<pre class=\"language-markup\"><code>E1 = Entry(window, bd =5, show=\"x\")\r\nE1.pack(side = RIGHT)<\/code><\/pre>\r\n<p><strong>4. Label <\/strong>w = Label ( master, option, ... )<\/p>\r\n<pre class=\"language-markup\"><code>var = StringVar()\r\nlabel = Label( window, textvariable=va )\r\nvar.set(\"Hey!? How are you doing?\")\r\nlabel.pack()<\/code><\/pre>\r\n<p><strong>5.Listbox&nbsp;<\/strong> w = Listbox ( master, option, ... )<br>display a list of items from which a user can select a number of items.<\/p>\r\n<p><strong>selectmode:&nbsp; <\/strong>browse(def), SINGLE, MULTIPLE,&nbsp;EXTENDED (from 1 to nth)<br><strong>Xscrollcommand, Yscrollcommand:<\/strong> scroll the listbox horizontally | vertically<br><strong>activate ( index )<\/strong> : default selection<br><strong>insert ( index, *elements ) : <\/strong>insert new element<\/p>\r\n<pre class=\"language-markup\"><code>Lb1 = Listbox(window, selectmode=\"extended\")\r\nLb1.insert(1, \"Python\")\r\nLb1.insert(2, \"Perl\")\r\nLb1.insert(3, \"C\")\r\nLb1.pack()<\/code><\/pre>\r\n<p><img style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJoAAACHCAIAAABh1dcFAAANNklEQVR4Ae2dbVQTVxrHOWc\/tHv2dE+729XdfGhPdS1it6hb9+yxWG2hWwQaarei8uICQQQBBd8QomAgBcJLEd9R8IClgGhBmmpbohYpoAQCSO1SUQkLGpJAXkgghEDC7AlBCEOYmchAcsO9X8y998lz\/\/f\/c4abyZ2JncO0shwWcBxA0bNzcHAARzxUiuWAg4OD3US\/PSzAOjAB0W5iCm\/CAqwDExDtDFNYZqr8FRZrdWA6LgPHyZPtxAELX4DrgB0Ci604sHz5cojTVmAiCMRpOywRBHHxiYJHp+0QXe7iA3HaEM7lLhCnLeGESyHboQmXQjbEEpnlyrahoYHJZHr7bT9yNKGvT2FbzgA5m+f5oDIyMiIWiy9cuBAZtWdfYtbBtHz\/gECpVAqkAbYl+nlwPn36tKCwOCn7yj5W7p5TPwanfe\/j4yORSGzLGSBnYzZOoVD47fc3DiWfPXdbnFzeEXC2ze0Qm0ajiUQinU4HpAc2JNo8nKOjo6WlpVFHUnPvKI9zuqn0b5yirrsfvBIcHNze3q7RaGzIGSCnYh5OjUaTk3PeL\/TAcU73P7cdXbfvO5eoEne\/\/aGhoRKJZHR0dB48sCNQ5kEG8SHs7Ox4PN5M8Twez86OtI\/+5uEsKytLOlWQepmXeb39z8veeWfHlxuCjgcEh9fW1g4NDc2kmNx23MnjBpCrBzebAZhJohhduGlNBhDFqdPp5HJ5bGzMvpQLSSVN7gEx9q6RTvs5\/9qZRafTBwcH5+fQRBAElxZugEkj5rTRJDaTjbOUQRTn0NBQdXX1Xjrz0ImyPemXX\/j9ovWxtS6Hqz12prBYrFmKMOvtuLRwA8wajqxgFDxUlaxRiOLs6+uLj48\/Vso7fUsYnJD3EmXFBvrd9\/xZ1K1BWVlZZKkhkgeXFm4AkVHmImYC4cQL0kfR4yRSZDJZaGgoq7Bmy57k1975eAP9rsvnv777SVjWiZMKxbxeD8KlhRtAuonEExpAYi+OiGebHkn06JTJZCEhIazCGs+g2D85OH\/IvO8UeHJb0F42mz096Zy24NLCDZhTedjJrQjnrl27rlRwQ\/bF6XEyGte6B5zKzm1vb8eeAOm9uLRwA0iXRDDhxDl24gXBNxIPW\/amPaEPPVKplEajXSq5HBIa+vJrq94Nyg4MDr937x7xkciKxKWFG0CWErPyoBCiqmalwgg2A6efn99nW7e95bjyxRd\/6+i48ubNm319fRip56gLlxZuwBwJw0hrEp7JRowkRLqI4tRoNFwu19\/fn0KhLFu2jMViSaVSi1ykxaWFG0DEFxJjMLBhdD2fAKI4R0dH+\/v76+rqfH19nZ2dOzo6RkZGnm\/IWb6LyDp8lkOQ+3bsdayBKFkjEsVpGE+tVtPpdCqVStbwMA+5DpiHU6vVnjlzJioqilwRMBtZDpiHE0GQn3\/+uaqqiqzhYR5yHTAbJ7nDw2zkOgBxkuunhbNBnBYGQO7wECe5flo4G8RpYQDkDg9xkuunhbNBnBYGQO7wECe5flo4G8RpYQDkDg9xkuunhbPpcSphsQkH+vv79Th\/gAVwB9ra2tRqtVKpHMfZDAvIDgiFwuHh4XGczc3NFj7lw+Fn7QDEOWsLrSkBxGlNNGatxRjndx3coi+o1M1UQwkMP5xXIULUWoKD9A1Iq\/P840t+aH2gJPgWGEayA8Y4r7SwWUG\/s\/egHYykM6J3bKf5BXufaXzcrxk2PeiAWvkLJ6Ogitf5ZBBBELFcUBJNcWWeq7kLH5Bg2rE5b0XhPB62yDOjtpc\/gCgfXL3M2rnqvc+vdSikpg9QFD9Udc6lwwGmOzAjTgR52MI20BW1dkuUCuXAxEE6PKBUSIXi\/z5uyg5bvCE6rfzbhzLpwNPxo\/PMzVt8iVgg6BYKe5QajXbsZuxRrU6jlAqFQoG+iHqliiFEp+8ZVisVCrFEqZQJhd36LkmfgvD5ffp8FngLLk6PjNqm7BgvVnJGXsszr1ryMpJpK9avc138yiu\/eeGll1999aMI\/7wb4zgT4yPDfNdTKK\/bO7plNtR3qvRvU3VKGzIDHO1XUPTlHx7+zBpEob9Tu4WTkZzwgU9mZoS9\/VIKhbLG9wizQvRsJPiveQ7MiPPZyZZ5rUPYevVwfEoarfCRIfejQlpayt7dOVe\/z4\/e\/IfVfuGp6debuB0P5YLCaMqS91zCwlMvlhac+PKQ55I1iacqHwsQQced3MyNa\/1jC88WsNlF6SeOhP3bjVn8i0Kk5rEZOzYvWbc2Nr\/w63L2sRCaV6h7eGkLgkycC8yb0MKORuE0XgqFhgYeCCtu5Ks0w4LycymZwVHlfGRkBOGXJx04e7rglgD1x1IsFxRFU97+NPDU+donyoH2nhrWxkVbEorqW6Qt9UUJWxZtZNX0tA8gyOCT1uunYpzXHK4Q\/SrnsRm7tq\/a4nuZL1GNIILyc7sjvVyTvpYjg\/B5Nub\/10ThTAp4YfFqJ1cXNyqVGrU\/8dqzo+RRzekT6YGsHH5PDz+HFZefV3Jfil7KTqf7bKH76G7NOaYrJbpEIBePSRS3sMv2UPaUCVrEPDYjZr\/zwZwOZEB\/ewSqav6EFvY7UDgnV7YoW+QNF0tP7nZLuX07xW33ydKLDfJpn0xmxtnOrc1luv8looAvE+oQRKcRNJQV7Fx64Nvu+70ofqgqSgWs4jhAFKdOXF11KeF9l4gIl\/cTLlVVi3Vm4Oxtu1fOCPrj0t2Xu+\/3Ioi8sS6P9emSiIIOmVCH4oeq4qiH3SgHiOJEhmX82q+SvFes8E76qpYv0y9UhlSS+5d87D0\/dFoXnpF4rXbqZQTjg3VA8b+q6mM0rw8+8fiISnXd5O0Xm1jQ2q4aHkKfXSFOFCDzqsY4b4na6q6nF9d2qcZooROJW9glYYveT6v5Sb+e0ZcRtZLPycg5xmCcKy2qfzj1ItHUa0bDMlXX7eL0FBaDwWBkns7nNMoRjX6xI2irvFExYxWtAdaxHTDGifkFmf7ovJS144O02+LHFrjbGnsWsHfcASI4tWqFRPLgu2v5X3y2vbBZqhq7LgAdtEYHcHFqEaSrgunl+3dHJ2rMyXuqvuF5eYSiNXoFgCZcnKMIohK13qm7caPyTmunCjFcggVgZgtSIi7OBekKsJOGOIFFZ0o4xGnKFWDbIE5g0ZkSbowT7hUy5RBQbcY4zd0rhJqo8VU9VBeszpMDKJyT36g8+\/oaY68QSiLEiTLEAtUZcRrtFdLvBEN0Go1K3iMQ6PfzCCQypXoY0em0gwqRRC7p7emR9kr5YkHJQbiTzwIQJ4ckjFPeWF9wwI1CeV2\/18cnIoPTgvQqRGzmau9oH8+NG2ke\/qnXBSWREOektxZ4NSPOqSfbR\/X5Wel+UUdy2V+Xs9nH4lKzi45xfzVsDtrkFxeX82M1l\/tYULIf4rQAxMkhUThn2CukrCyODvB8w8kzkkGPZzB2unuGxwcWVBs2BwUfLWM\/HJz2bfbkGPDVvDmAwjnDXqHub3J3b127+O21VKq74Y6HKOzvq+dNPxxoigMonJMr2ylRomt5kTH+bhlslXZw8iepUEtZVHVKAliZHweI4dRyy+P\/473S3buwS6KauMMBxQ9VnR\/9cJQpDhDDifSJeMVfxfisW+ni4fax\/nQLT7ZTbLSWijFOzL1Cg086eezzDEaifrMPgc1B1jLBhaXDGCfmXqGFZQuos4U4QSVnUjfEadIWUBshTlDJmdQNcZq0BdRGiBNUciZ1Q5wmbQG1EeIElZxJ3dNxahFExM07fDRw7Fr7p1upe4t\/aBXBJwWZtM\/aGqfi1N\/n9WNx+qEkOj3uyNjVn4QERmpm4U\/8h\/BRQdaGzpQeY5z1qm5uUx5tq8sncXncesFYuFaNiCq4v4geGKqmUsA263HACGcT51Hl2STnpXuvjt0jbT0aoRLCDhjhrMy9cyHZ8zXDPe6EE8BAa3LACOet7JrCDLf1WVVipcKaJEItxB2YivPLtI1rWByRUk48AYy0JgeMcFYX8IrSfO19ztyXdOkfrwYLeA4Y4Wyu7KzLO73pDdr55mq+Wj3+m9ajiFal1mg1lvmJa\/AMtaxiY5xNWkHD4\/NeS5a84ZXG4fDHhGlVSFdhxd3ORkPVsmLh6HgOGONsRoYU6s47nItRIZs3uzuPXRXatJkakppfze8af\/YMXj7Yb1EHpuJE9PeiIPJGTv7pTMOeoMQUxvnbvE6Z\/nHSsFi9A9NwWr1iKBDDAYgTwxzwuiBO8JhhKIY4McwBrwviBI8ZhmKIE8Mc8LogTvCYYSiGODHMAa8L4gSPGYZiiBPDHPC6IE7wmGEohjgxzAGvC+IEjxmGYgPOvzmutoO\/fY1hEyhdECcopAjphDgJ2QRKEMQJCilCOiFOQjaBEgRxgkKKkE6Ik5BNoARBnKCQIqQT4iRkEyhBECcopAjphDgJ2QRKEMQJCilCOiFOQjaBEgRxgkKKkE6Ik5BNoARBnKCQIqQT4iRkEyhBECcopAjphDgJ2QRKEMQJCilCOidw\/h94EU1tedRhBwAAAABJRU5ErkJggg==\"><br><strong>6. Menu<\/strong> w = Menu ( master, option, ... )<\/p>\r\n<p><strong>Postcommand<\/strong>: You can set this option to a procedure, and that procedure will be called every time someone brings up this menu. <br><strong>Tearoff: tearoff=1 <\/strong>&rarr; enables menu to be torn off into a new window. <strong>tearoff=0 <\/strong>&rarr; disables this behavior<\/p>\r\n<p><strong>add_command (options)&nbsp;<\/strong>: Adds a menu item to the menu.<br><strong>add_radiobutton( options )<\/strong> Creates a radio button menu item.<br><strong>add( type, options ) <\/strong>Adds a specific type of menu item to the menu.<br><strong>add_separator()<\/strong> Adds a separator line to the menu.<br><strong>add_cascade(options)&nbsp;<\/strong>Creates a new hierarchical menu by associating a given menu to a parent menu.<\/p>\r\n<pre class=\"language-markup\"><code>from tkinter import *\r\nimport tkinter as tk\r\n\r\ndef donothing():\r\n   filewin = Toplevel(window)\r\n   button = Button(filewin, text=\"Do nothing button\")\r\n   button.pack()\r\n\r\n# Create the main window\r\nwindow = tk.Tk()\r\n\r\nmenubar = Menu(window)\r\nfilemenu = Menu(menubar, tearoff=0)\r\nfilemenu.add_command(label=\"New\", command=donothing)\r\nfilemenu.add_command(label=\"Open\", command=donothing)\r\nfilemenu.add_separator()\r\nfilemenu.add_command(label=\"Exit\", command=window.quit)\r\nmenubar.add_cascade(label=\"File\", menu=filemenu)\r\n\r\neditmenu = Menu(menubar, tearoff=0)\r\neditmenu.add_command(label=\"Undo\", command=donothing)\r\neditmenu.add_separator()\r\neditmenu.add_command(label=\"Cut\", command=donothing)\r\nmenubar.add_cascade(label=\"Edit\", menu=editmenu)\r\n\r\nhelpmenu = Menu(menubar, tearoff=0)\r\nhelpmenu.add_command(label=\"Help Index\", command=donothing)\r\nhelpmenu.add_command(label=\"About...\", command=donothing)\r\nmenubar.add_cascade(label=\"Help\", menu=helpmenu)\r\n\r\nwindow.config(menu=menubar)\r\nwindow.mainloop()\r\n<\/code><\/pre>\r\n<p><strong>7. Drop down button:&nbsp;<\/strong>&nbsp;w = Menubutton ( master, option, ... )<\/p>\r\n<pre class=\"language-markup\"><code># Create the main window\r\nwindow = tk.Tk()\r\nmb= Menubutton ( window, text=\"condiments\" )\r\nmb.grid()\r\nmb.menu = Menu ( mb, tearoff = 0 )\r\nmb[\"menu\"] = mb.menu\r\n\r\nmayoVar = IntVar()\r\nketchVar = IntVar()\r\nmb.menu.add_checkbutton (label=\"mayo\", variable=mayoVar)\r\nmb.menu.add_checkbutton (label=\"ketchup\", variable=ketchVar)\r\nmb.pack()<\/code><\/pre>\r\n<p><strong>8. Radio Button :&nbsp;<\/strong>w = Radiobutton ( master, option, ... )<br><\/p>\r\n<pre class=\"language-markup\"><code>window = tk.Tk()\r\n\r\ndef sel():\r\n   selection = \"You selected the option \" + str(var.get())\r\n   label.config(text = selection)\r\n\r\nvar = IntVar()\r\nR1 = Radiobutton(window, text=\"Option 1\", variable=var, value=1, command=sel)\r\nR1.pack()\r\nR2 = Radiobutton(window, text=\"Option 2\", variable=var, value=2, command=sel)\r\nR2.pack()\r\nR3 = Radiobutton(window, text=\"Option 3\", variable=var, value=3, command=sel)\r\nR3.pack()\r\nlabel = Label(window)\r\nlabel.pack()<\/code><\/pre>\r\n<p><strong>9. Message:<\/strong> w = Message ( master, option, ... )<strong><br><br><\/strong>This widget provides a multiline and noneditable object that displays texts, automatically breaking lines and justifying their contents.<\/p>\r\n<pre class=\"language-markup\"><code>var = StringVar()\r\nmessage = Message(window, textvariable=var)\r\nvar.set(\"Hey!? How are you doing?\")\r\nmessage.pack()<\/code><\/pre>\r\n<p><strong>10. TEXT : <\/strong>w = Text ( master, option, ... )<strong><br><\/strong>Text widgets provide advanced capabilities that allow you to edit a multiline text and format the way it has to be displayed, such as changing its color and font.<strong><br><\/strong><\/p>\r\n<pre class=\"language-markup\"><code>text = Text(window)\r\ntext.insert(INSERT, \"Hello.....\")\r\ntext.insert(END, \"Bye Bye.....\")\r\ntext.pack()<\/code><\/pre>\r\n<p><strong>11. Scrollbar<\/strong> w = Scrollbar ( master, option, ... )<\/p>\r\n<pre class=\"language-markup\"><code>scrollbar = Scrollbar(window)\r\nscrollbar.pack( side = RIGHT, fill=Y )\r\n\r\nmylist = Listbox(window, yscrollcommand = scrollbar.set )\r\nfor line in range(100):\r\n   mylist.insert(END, \"This is line number \" + str(line))\r\n  \r\nmylist.pack( side = LEFT, fill = BOTH )\r\nscrollbar.config( command = mylist.yview )<\/code><\/pre>\r\n<p>&nbsp;<\/p>\r\n<p>&nbsp;<\/p>\r\n<p>FOR MORE VISIT:<br>https:\/\/www.tutorialspoint.com\/python\/python_gui_programming.htm<\/p>","category_id":"38","is_private":"0","created_at":"2025-05-29T22:17:09.000000Z","updated_at":"2025-05-30T00:03:28.000000Z","category":{"id":38,"user_id":"1","name":"TKinter","slug":"tkinter-tcuu","parent_id":"5","created_at":"2025-05-29T00:58:53.000000Z","updated_at":"2025-05-29T00:58:53.000000Z"},"user":{"id":1,"name":"R GONDAL","email":"rizikmw@gmail.com","email_verified_at":null,"two_factor_confirmed_at":null,"current_team_id":"1","profile_photo_path":null,"created_at":"2023-03-12T10:49:33.000000Z","updated_at":"2025-01-10T12:59:00.000000Z","profile_photo_url":"https:\/\/ui-avatars.com\/api\/?name=R+G&color=7F9CF5&background=EBF4FF"}},"pageDesc":"Tkinter &minus; Main Tkinter module and few others:tkinter.colorchooser,&nbsp;tkinter.commondialog ,&nbsp;tkinter.filedialog,&nbsp;tkinter.f - TKinter create GUI in python (Updated: May 30, 2025) - Read more about TKinter create GUI in python at my programming site [SITE]","categories":[]}