{"id":125,"date":"2020-11-03T09:34:55","date_gmt":"2020-11-03T09:34:55","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/?post_type=chapter&#038;p=125"},"modified":"2020-12-29T13:52:15","modified_gmt":"2020-12-29T13:52:15","slug":"tkinter-ja-varvid","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/chapter\/tkinter-ja-varvid\/","title":{"raw":"Tkinter ja suurem n\u00e4ide v\u00e4rvidega","rendered":"Tkinter ja suurem n\u00e4ide v\u00e4rvidega"},"content":{"raw":"N\u00fc\u00fcdseks oleme tutvunud erinevate Tkinteri komponentide ja funktsionaalsustega.\r\nK\u00fcll aga pole me veel kokku puutunud kujundusega. Hea viis Tkinteriga loodud graafiliste kasutajaliideste kujundamiseks on luua stiile ja omistada neid komponentidele.\r\n\r\nSelleks tuleks meil teha stiil:\r\n\r\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">style = ttk.Style()<\/code>\r\n\r\nN\u00e4iteks teeme k\u00f5ik tausta helesiniseks.\r\n\r\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">style.configure('TFrame', background='light blue')<\/code>\r\n\r\nEristiilide loomisel tuleks lisada ka vastav stiili nimi. N\u00e4iteks teeme nupule eristiili, kus paneme kirjasuuruseks 12 ja kirjastiiliks Helvetica ning tausta heleroheliseks koos punase kirjaga:\r\n\r\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">style.configure('.', font=('Helvetica', 12))\r\nstyle.configure(\"Mine.TButton\", foreground=\"red\", background=\"light green\")<\/code>\r\n\r\nSamuti tuleks need stiilid lisada vastavatele komponentidele:\r\n\r\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">nupp = ttk.Button(sisuraam, text=\"Arvuta!\", style=\"Mine.TButton\", command=teisenda).grid(column=3, row=3, sticky=W)<\/code>\r\n\r\nKuidas n\u00e4iteks tekstisiltide taustad valgeks teha?\r\n\r\nKomponentide stiilide muutmiseks leiab ttk komponentide nimekirja siit: <a href=\"https:\/\/anzeljg.github.io\/rin2\/book2\/2405\/docs\/tkinter\/ttk-style-layer.html\">https:\/\/anzeljg.github.io\/rin2\/book2\/2405\/docs\/tkinter\/ttk-style-layer.html<\/a>\r\n\r\nV\u00e4rviline programm n\u00e4eks v\u00e4lja selline:\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">from tkinter import * # tkinteri p\u00f5hivahendid\r\nfrom tkinter import ttk # platvormi \u00fchise stiili saamiseks\r\n\r\ndef teisenda(*args):\r\n    try:\r\n        a = float(meetrid.get())\r\n        kilomeetrid.set(a \/ 1000)\r\n        meetrid.set(\"\")\r\n    except ValueError:\r\n        kilomeetrid.set(\"Ei saanud teisendada. Sisesta arv!\")\r\n        meetrid.set(\"\")\r\n\r\nraam = Tk()\r\nraam.title(\"Meetrite teisendamine\")\r\n\r\nstyle = ttk.Style()\r\nstyle.configure('TFrame', background='light blue')\r\nstyle.configure('TLabel', background='white')\r\n\r\nsisuraam = ttk.Frame(raam, padding=\"3 3 12 12\")\r\nsisuraam.grid(column=0, row=0, sticky=(N, W, E, S))\r\nraam.columnconfigure(0, weight=1)\r\nraam.rowconfigure(0, weight=1)\r\n\r\nmeetrid = StringVar()\r\nkilomeetrid = StringVar()\r\nmeetrite_tekstikast = ttk.Entry(sisuraam, width=7, textvariable=meetrid)\r\nmeetrite_tekstikast.grid(column=2, row=1, sticky=(W, E))\r\nttk.Label(sisuraam, textvariable=kilomeetrid).grid(column=2, row=2, sticky=(W, E))\r\n\r\nstyle.configure('.', font=('Helvetica', 12))\r\nstyle.configure(\"Mine.TButton\", foreground=\"red\", background=\"light green\")\r\nnupp = ttk.Button(sisuraam, text=\"Arvuta!\", style=\"Mine.TButton\", command=teisenda).grid(column=3, row=3, sticky=W)\r\nttk.Label(sisuraam, text=\"meetrit\").grid(column=3, row=1, sticky=W)\r\nttk.Label(sisuraam, text=\"on v\u00f5rdne\").grid(column=1, row=2, sticky=E)\r\nttk.Label(sisuraam, text=\"kilomeetriga.\").grid(column=3, row=2, sticky=W)\r\n\r\nfor child in sisuraam.winfo_children(): child.grid_configure(padx=5, pady=5)\r\nmeetrite_tekstikast.focus()\r\n\r\nraam.bind('&lt;Return&gt;', teisenda)\r\nraam.mainloop()<\/pre>\r\n&nbsp;","rendered":"<p>N\u00fc\u00fcdseks oleme tutvunud erinevate Tkinteri komponentide ja funktsionaalsustega.<br \/>\nK\u00fcll aga pole me veel kokku puutunud kujundusega. Hea viis Tkinteriga loodud graafiliste kasutajaliideste kujundamiseks on luua stiile ja omistada neid komponentidele.<\/p>\n<p>Selleks tuleks meil teha stiil:<\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">style = ttk.Style()<\/code><\/p>\n<p>N\u00e4iteks teeme k\u00f5ik tausta helesiniseks.<\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">style.configure('TFrame', background='light blue')<\/code><\/p>\n<p>Eristiilide loomisel tuleks lisada ka vastav stiili nimi. N\u00e4iteks teeme nupule eristiili, kus paneme kirjasuuruseks 12 ja kirjastiiliks Helvetica ning tausta heleroheliseks koos punase kirjaga:<\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">style.configure('.', font=('Helvetica', 12))<br \/>\nstyle.configure(\"Mine.TButton\", foreground=\"red\", background=\"light green\")<\/code><\/p>\n<p>Samuti tuleks need stiilid lisada vastavatele komponentidele:<\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">nupp = ttk.Button(sisuraam, text=\"Arvuta!\", style=\"Mine.TButton\", command=teisenda).grid(column=3, row=3, sticky=W)<\/code><\/p>\n<p>Kuidas n\u00e4iteks tekstisiltide taustad valgeks teha?<\/p>\n<p>Komponentide stiilide muutmiseks leiab ttk komponentide nimekirja siit: <a href=\"https:\/\/anzeljg.github.io\/rin2\/book2\/2405\/docs\/tkinter\/ttk-style-layer.html\">https:\/\/anzeljg.github.io\/rin2\/book2\/2405\/docs\/tkinter\/ttk-style-layer.html<\/a><\/p>\n<p>V\u00e4rviline programm n\u00e4eks v\u00e4lja selline:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">from tkinter import * # tkinteri p\u00f5hivahendid\r\nfrom tkinter import ttk # platvormi \u00fchise stiili saamiseks\r\n\r\ndef teisenda(*args):\r\n    try:\r\n        a = float(meetrid.get())\r\n        kilomeetrid.set(a \/ 1000)\r\n        meetrid.set(\"\")\r\n    except ValueError:\r\n        kilomeetrid.set(\"Ei saanud teisendada. Sisesta arv!\")\r\n        meetrid.set(\"\")\r\n\r\nraam = Tk()\r\nraam.title(\"Meetrite teisendamine\")\r\n\r\nstyle = ttk.Style()\r\nstyle.configure('TFrame', background='light blue')\r\nstyle.configure('TLabel', background='white')\r\n\r\nsisuraam = ttk.Frame(raam, padding=\"3 3 12 12\")\r\nsisuraam.grid(column=0, row=0, sticky=(N, W, E, S))\r\nraam.columnconfigure(0, weight=1)\r\nraam.rowconfigure(0, weight=1)\r\n\r\nmeetrid = StringVar()\r\nkilomeetrid = StringVar()\r\nmeetrite_tekstikast = ttk.Entry(sisuraam, width=7, textvariable=meetrid)\r\nmeetrite_tekstikast.grid(column=2, row=1, sticky=(W, E))\r\nttk.Label(sisuraam, textvariable=kilomeetrid).grid(column=2, row=2, sticky=(W, E))\r\n\r\nstyle.configure('.', font=('Helvetica', 12))\r\nstyle.configure(\"Mine.TButton\", foreground=\"red\", background=\"light green\")\r\nnupp = ttk.Button(sisuraam, text=\"Arvuta!\", style=\"Mine.TButton\", command=teisenda).grid(column=3, row=3, sticky=W)\r\nttk.Label(sisuraam, text=\"meetrit\").grid(column=3, row=1, sticky=W)\r\nttk.Label(sisuraam, text=\"on v\u00f5rdne\").grid(column=1, row=2, sticky=E)\r\nttk.Label(sisuraam, text=\"kilomeetriga.\").grid(column=3, row=2, sticky=W)\r\n\r\nfor child in sisuraam.winfo_children(): child.grid_configure(padx=5, pady=5)\r\nmeetrite_tekstikast.focus()\r\n\r\nraam.bind('&lt;Return&gt;', teisenda)\r\nraam.mainloop()<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"author":17,"menu_order":10,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-125","chapter","type-chapter","status-publish","hentry"],"part":451,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/users\/17"}],"version-history":[{"count":14,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/125\/revisions"}],"predecessor-version":[{"id":659,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/125\/revisions\/659"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/parts\/451"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/125\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/media?parent=125"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapter-type?post=125"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/contributor?post=125"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/license?post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}