Latest posts on сохранить введённые в окно tkinter значения topichttp://python.su/forum/topic/41201/2022-02-12T21:48:22+02:00Общий :: GUI :: сохранить введённые в окно tkinter значения
2022-02-12T21:48:22+02:00AD0DE412220600перепишите свой код как то так<br/><div class="code"><pre> <span class="ch">#! /usr/bin/env python</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="kn">import</span> <span class="nn">sys</span>
<span class="kn">import</span> <span class="nn">tkinter</span> <span class="kn">as</span> <span class="nn">tk</span>
<span class="kn">import</span> <span class="nn">tkinter.ttk</span> <span class="kn">as</span> <span class="nn">ttk</span>
<span class="k">class</span> <span class="nc">Toplevel1</span><span class="p">():</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">top</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
<span class="sd">'''This class configures and populates the toplevel window.</span>
<span class="sd"> top is the toplevel containing window.'''</span>
<span class="n">top</span><span class="o">.</span><span class="n">geometry</span><span class="p">(</span><span class="s2">"229x197+688+321"</span><span class="p">)</span>
<span class="n">top</span><span class="o">.</span><span class="n">resizable</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
<span class="n">top</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"New Toplevel"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label1</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Label</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label1</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">relx</span><span class="o">=</span><span class="mf">0.044</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.152</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">21</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">34</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'''list'''</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label2</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Label</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label2</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">relx</span><span class="o">=</span><span class="mf">0.044</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.305</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">21</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">34</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'''entry'''</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label3</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Label</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label3</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">relx</span><span class="o">=</span><span class="mf">0.044</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.457</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">21</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">34</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'''check'''</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label4</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Label</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label4</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">relx</span><span class="o">=</span><span class="mf">0.262</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.051</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">21</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">34</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label4</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'''alex'''</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label5</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Label</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label5</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">relx</span><span class="o">=</span><span class="mf">0.568</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.051</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">21</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">34</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Label5</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'''billy'''</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox1</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox1</span><span class="o">.</span><span class="n">place</span><span class="p">(</span>
<span class="n">relx</span><span class="o">=</span><span class="mf">0.262</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.152</span><span class="p">,</span> <span class="n">relheight</span><span class="o">=</span><span class="mf">0.107</span><span class="p">,</span> <span class="n">relwidth</span><span class="o">=</span><span class="mf">0.231</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">takefocus</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox2</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox2</span><span class="o">.</span><span class="n">place</span><span class="p">(</span>
<span class="n">relx</span><span class="o">=</span><span class="mf">0.568</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.152</span><span class="p">,</span> <span class="n">relheight</span><span class="o">=</span><span class="mf">0.107</span><span class="p">,</span> <span class="n">relwidth</span><span class="o">=</span><span class="mf">0.231</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">takefocus</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TEntry1</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Entry</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TEntry1</span><span class="o">.</span><span class="n">place</span><span class="p">(</span>
<span class="n">relx</span><span class="o">=</span><span class="mf">0.262</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.305</span><span class="p">,</span> <span class="n">relheight</span><span class="o">=</span><span class="mf">0.107</span><span class="p">,</span> <span class="n">relwidth</span><span class="o">=</span><span class="mf">0.201</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TEntry2</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Entry</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TEntry2</span><span class="o">.</span><span class="n">place</span><span class="p">(</span>
<span class="n">relx</span><span class="o">=</span><span class="mf">0.568</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.305</span><span class="p">,</span> <span class="n">relheight</span><span class="o">=</span><span class="mf">0.107</span><span class="p">,</span> <span class="n">relwidth</span><span class="o">=</span><span class="mf">0.201</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">check</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">IntVar</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Checkbutton1</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Checkbutton</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Checkbutton1</span><span class="o">.</span><span class="n">place</span><span class="p">(</span>
<span class="n">relx</span><span class="o">=</span><span class="mf">0.262</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.457</span><span class="p">,</span> <span class="n">relheight</span><span class="o">=</span><span class="mf">0.127</span><span class="p">,</span> <span class="n">relwidth</span><span class="o">=</span><span class="mf">0.266</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Checkbutton1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">anchor</span><span class="o">=</span><span class="s1">'w'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Checkbutton1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">justify</span><span class="o">=</span><span class="s1">'left'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Checkbutton1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">variable</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">check</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Checkbutton2</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Checkbutton</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Checkbutton2</span><span class="o">.</span><span class="n">place</span><span class="p">(</span>
<span class="n">relx</span><span class="o">=</span><span class="mf">0.568</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.457</span><span class="p">,</span> <span class="n">relheight</span><span class="o">=</span><span class="mf">0.127</span><span class="p">,</span> <span class="n">relwidth</span><span class="o">=</span><span class="mf">0.266</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Checkbutton2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">anchor</span><span class="o">=</span><span class="s1">'w'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Checkbutton2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">justify</span><span class="o">=</span><span class="s1">'left'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">place</span><span class="p">(</span>
<span class="n">relx</span><span class="o">=</span><span class="mf">0.044</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.609</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">24</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">47</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">set_</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">pady</span><span class="o">=</span><span class="s2">"0"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'''set'''</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">place</span><span class="p">(</span>
<span class="n">relx</span><span class="o">=</span><span class="mf">0.306</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.609</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">24</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">47</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">get_</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">pady</span><span class="o">=</span><span class="s2">"0"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'''get'''</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">place</span><span class="p">(</span>
<span class="n">relx</span><span class="o">=</span><span class="mf">0.568</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.609</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">24</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">47</span>
<span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">go_</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">pady</span><span class="o">=</span><span class="s2">"0"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'''go'''</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">set_</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'set_'</span><span class="p">)</span>
<span class="n">what_there</span> <span class="o">=</span> <span class="n">f</span><span class="s1">'{self.check.get()}'</span>
<span class="k">print</span><span class="p">(</span><span class="n">what_there</span><span class="p">)</span>
<span class="k">pass</span>
<span class="k">def</span> <span class="nf">get_</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'get_'</span><span class="p">)</span>
<span class="k">pass</span>
<span class="k">def</span> <span class="nf">go_</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'go_'</span><span class="p">)</span>
<span class="k">pass</span>
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">'__main__'</span><span class="p">:</span>
<span class="n">root</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Tk</span><span class="p">()</span>
<span class="n">w</span> <span class="o">=</span> <span class="n">Toplevel1</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
<span class="n">root</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
</pre></div>а то очень запутано <br/>и чего совсем не понимаю зачем вы сохраняете объекты берите нужные значения а объекты остаются сборщику мусора
Общий :: GUI :: сохранить введённые в окно tkinter значения
2022-02-12T10:46:29+02:00Ynejus220590Оно сохраняет, но я полагал, что будет сохранено <u>только</u> Combobox и только в списке list. А оно записывает и в entry, и в check.
Общий :: GUI :: сохранить введённые в окно tkinter значения
2022-02-12T10:39:47+02:00AD0DE412220588так оно и сохраняет объекты<strike> <tkinter.ttk.Combobox object .!combobox></strike> ээ что не так?
Общий :: GUI :: сохранить введённые в окно tkinter значения
2022-02-12T10:17:53+02:00Ynejus220587<blockquote><em>AD0DE412</em><br/></blockquote>Программа должна рисовать окно, <br/><div class="code"><pre> <span class="kn">import</span> <span class="nn">tkinter</span>
<span class="kn">from</span> <span class="nn">tkinter.ttk</span> <span class="kn">import</span> <span class="n">Entry</span><span class="p">,</span> <span class="n">Combobox</span><span class="p">,</span> <span class="n">Checkbutton</span>
<span class="n">variables_list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'list'</span><span class="p">,</span><span class="s1">'entry'</span><span class="p">,</span><span class="s1">'check'</span><span class="p">]</span>
<span class="n">constants</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">'names'</span><span class="p">:[</span><span class="s1">'alex'</span><span class="p">,</span><span class="s1">'billy'</span><span class="p">],</span>
<span class="s1">'color'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'red'</span><span class="p">:</span><span class="mi">12</span><span class="p">,</span>
<span class="s1">'green'</span><span class="p">:</span><span class="mi">15</span><span class="p">,</span>
<span class="s1">'yellow'</span><span class="p">:</span><span class="mi">19</span><span class="p">,</span>
<span class="s1">'brown'</span><span class="p">:</span><span class="mi">18</span><span class="p">,</span>
<span class="s1">'grey'</span><span class="p">:</span><span class="mi">6</span><span class="p">},</span>
<span class="p">}</span>
<span class="k">class</span> <span class="nc">MainWindow</span><span class="p">():</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">=</span> <span class="n">tkinter</span><span class="o">.</span><span class="n">Tk</span><span class="p">()</span>
</pre></div>В котором есть несколько строк: выпадающий список, поле ввода, чекбокс и кнопок<br/><div class="code"><pre> <span class="k">def</span> <span class="nf">label_const</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">variables_list</span><span class="p">:</span> <span class="n">tkinter</span><span class="o">.</span><span class="n">Label</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root</span><span class="p">,</span><span class="n">text</span> <span class="o">=</span> <span class="n">i</span><span class="p">)</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">y</span> <span class="o">=</span> <span class="mi">20</span> <span class="o">+</span> <span class="n">variables_list</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="mi">20</span><span class="p">)</span>
<span class="n">tkinter</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root</span><span class="p">,</span><span class="n">text</span> <span class="o">=</span> <span class="s1">'Set'</span><span class="p">,</span><span class="n">command</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">label_var</span><span class="p">)</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="mi">80</span><span class="p">)</span>
<span class="n">tkinter</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root</span><span class="p">,</span><span class="n">text</span> <span class="o">=</span> <span class="s1">'Get'</span><span class="p">,</span><span class="n">command</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">label_get</span><span class="p">)</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="mi">105</span><span class="p">)</span>
<span class="n">tkinter</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root</span><span class="p">,</span><span class="n">text</span> <span class="o">=</span> <span class="s1">'GO!'</span><span class="p">,</span><span class="n">command</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="k">print</span><span class="p">)</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="mi">130</span><span class="p">)</span>
</pre></div>Строки разделены на несколько столбцов, названных alex, billy, charlie и так далее. Количество столбцов может быть различным и зависит от содержимого <em>constants = {'names':….}</em><br/><br/><div class="code"><pre> <span class="k">def</span> <span class="nf">label_var</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">])):</span>
<span class="n">x</span> <span class="o">=</span> <span class="mi">50</span><span class="o">+</span><span class="mi">60</span><span class="o">*</span><span class="n">i</span>
<span class="n">tkinter</span><span class="o">.</span><span class="n">Label</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">][</span><span class="n">i</span><span class="p">])</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
</pre></div><br/>При запуске я ожидаю, что tkinter нарисует окно и элементы ввода<br/><div class="code"><pre> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">label_const</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">label_var</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">root</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
<span class="n">window</span> <span class="o">=</span> <span class="n">MainWindow</span><span class="p">()</span>
<span class="n">window</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>
</pre></div><br/>Для этого я создаю словарь, в котором хотел бы хранить вводимые значения<br/><div class="code"><pre> <span class="k">def</span> <span class="nf">label_var</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">variables</span> <span class="o">=</span> <span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">],</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">variables_list</span><span class="p">,[]))</span>
<span class="k">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="p">)</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">])):</span>
<span class="n">x</span> <span class="o">=</span> <span class="mi">50</span><span class="o">+</span><span class="mi">60</span><span class="o">*</span><span class="n">i</span>
<span class="n">tkinter</span><span class="o">.</span><span class="n">Label</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">][</span><span class="n">i</span><span class="p">])</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">var</span> <span class="o">=</span> <span class="n">Combobox</span><span class="p">(</span><span class="n">values</span><span class="o">=</span><span class="nb">tuple</span><span class="p">(</span><span class="n">constants</span><span class="p">[</span><span class="s1">'color'</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()),</span><span class="n">width</span> <span class="o">=</span> <span class="mi">5</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">var</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="mi">20</span><span class="p">)</span> <span class="c1">#выпадающий список</span>
<span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="p">[</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">][</span><span class="n">i</span><span class="p">]][</span><span class="s1">'list'</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">var</span><span class="p">)</span>
<span class="c1">## self.var = tkinter.Entry(width = 5)</span>
<span class="c1">## self.var.place(x=x,y=40) #ввод вручную</span>
<span class="c1">## self.variables[constants['names'][i]]['entry'].append(self.var)</span>
<span class="c1">## self.var = Checkbutton(width = 5)</span>
<span class="c1">## self.var.place(x=x,y=60) # отметка</span>
<span class="c1">## self.variables[constants['names'][i]]['check'].append(self.var)</span>
<span class="k">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="p">)</span>
</pre></div>часть строк закомментировано для краткости<br/>Первый <em>print(self.variables)</em> выдаёт: {'alex': {'list': , ‘entry’: , ‘check’: }, ‘billy’: {'list': , ‘entry’: , ‘check’: }}<br/>Дальше я ожидал, что первая итерация цикла напишет ‘alex’,<br/>создаст атрибут метода <div class="code"><pre> <span class="bp">self</span><span class="o">.</span><span class="n">var</span> <span class="o">=</span> <span class="n">Combobox</span><span class="p">(</span><span class="n">values</span><span class="o">=</span><span class="nb">tuple</span><span class="p">(</span><span class="n">constants</span><span class="p">[</span><span class="s1">'color'</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()),</span><span class="n">width</span> <span class="o">=</span> <span class="mi">5</span><span class="p">)</span>
</pre></div>и добавит его в список <div class="code"><pre> <span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="p">[</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">][</span><span class="n">i</span><span class="p">]][</span><span class="s1">'list'</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">var</span><span class="p">)</span>
</pre></div>Поэтому я ожидал, что второй <em>print(self.variables)</em> выдаст что-то вроде <div class="code"><pre> <span class="p">{</span><span class="s1">'alex'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'list'</span><span class="p">:</span> <span class="p">[</span><span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox</span><span class="o">></span><span class="p">],</span> <span class="s1">'entry'</span><span class="p">:</span> <span class="p">[],</span> <span class="s1">'check'</span><span class="p">:</span> <span class="p">[]},</span>
<span class="s1">'billy'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'list'</span><span class="p">:</span> <span class="p">[</span><span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox2</span><span class="o">></span><span class="p">],</span> <span class="s1">'entry'</span><span class="p">:</span> <span class="p">[],</span> <span class="s1">'check'</span><span class="p">:</span> <span class="p">[]}}</span>
</pre></div>, но получаю <br/><div class="code"><pre>
<span class="p">{</span><span class="s1">'alex'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'list'</span><span class="p">:</span> <span class="p">[</span><span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox2</span><span class="o">></span><span class="p">],</span>
<span class="s1">'entry'</span><span class="p">:</span> <span class="p">[</span><span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox2</span><span class="o">></span><span class="p">],</span>
<span class="s1">'check'</span><span class="p">:</span> <span class="p">[</span><span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox2</span><span class="o">></span><span class="p">]},</span>
<span class="s1">'billy'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'list'</span><span class="p">:</span> <span class="p">[</span><span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox2</span><span class="o">></span><span class="p">],</span>
<span class="s1">'entry'</span><span class="p">:</span> <span class="p">[</span><span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox2</span><span class="o">></span><span class="p">],</span>
<span class="s1">'check'</span><span class="p">:</span> <span class="p">[</span><span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">tkinter</span><span class="o">.</span><span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span> <span class="nb">object</span> <span class="o">.</span><span class="err">!</span><span class="n">combobox2</span><span class="o">></span><span class="p">]}}</span>
</pre></div>Больше ошибок нет<br/>
Общий :: GUI :: сохранить введённые в окно tkinter значения
2022-02-12T10:03:29+02:00AD0DE412220586вот пример вводите в текстовое поле строчку нажимаете add добавляете в комбо ну и тама еще del и print кроче там вроде ясно все <br/><em>unknown.py</em><br/><div class="code"><pre> <span class="ch">#! /usr/bin/env python</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="kn">import</span> <span class="nn">sys</span>
<span class="k">try</span><span class="p">:</span>
<span class="kn">import</span> <span class="nn">Tkinter</span> <span class="kn">as</span> <span class="nn">tk</span>
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
<span class="kn">import</span> <span class="nn">tkinter</span> <span class="kn">as</span> <span class="nn">tk</span>
<span class="k">try</span><span class="p">:</span>
<span class="kn">import</span> <span class="nn">ttk</span>
<span class="n">py3</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
<span class="kn">import</span> <span class="nn">tkinter.ttk</span> <span class="kn">as</span> <span class="nn">ttk</span>
<span class="n">py3</span> <span class="o">=</span> <span class="bp">True</span>
<span class="kn">import</span> <span class="nn">unknown_support</span>
<span class="k">def</span> <span class="nf">vp_start_gui</span><span class="p">():</span>
<span class="sd">'''Starting point when module is the main routine.'''</span>
<span class="k">global</span> <span class="n">val</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">root</span>
<span class="n">root</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Tk</span><span class="p">()</span>
<span class="n">unknown_support</span><span class="o">.</span><span class="n">set_Tk_var</span><span class="p">()</span>
<span class="n">top</span> <span class="o">=</span> <span class="n">Toplevel1</span> <span class="p">(</span><span class="n">root</span><span class="p">)</span>
<span class="n">unknown_support</span><span class="o">.</span><span class="n">init</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="n">top</span><span class="p">)</span>
<span class="n">root</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
<span class="n">w</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">def</span> <span class="nf">create_Toplevel1</span><span class="p">(</span><span class="n">rt</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="sd">'''Starting point when module is imported by another module.</span>
<span class="sd"> Correct form of call: 'create_Toplevel1(root, *args, **kwargs)' .'''</span>
<span class="k">global</span> <span class="n">w</span><span class="p">,</span> <span class="n">w_win</span><span class="p">,</span> <span class="n">root</span>
<span class="c1">#rt = root</span>
<span class="n">root</span> <span class="o">=</span> <span class="n">rt</span>
<span class="n">w</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Toplevel</span> <span class="p">(</span><span class="n">root</span><span class="p">)</span>
<span class="n">unknown_support</span><span class="o">.</span><span class="n">set_Tk_var</span><span class="p">()</span>
<span class="n">top</span> <span class="o">=</span> <span class="n">Toplevel1</span> <span class="p">(</span><span class="n">w</span><span class="p">)</span>
<span class="n">unknown_support</span><span class="o">.</span><span class="n">init</span><span class="p">(</span><span class="n">w</span><span class="p">,</span> <span class="n">top</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="k">return</span> <span class="p">(</span><span class="n">w</span><span class="p">,</span> <span class="n">top</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">destroy_Toplevel1</span><span class="p">():</span>
<span class="k">global</span> <span class="n">w</span>
<span class="n">w</span><span class="o">.</span><span class="n">destroy</span><span class="p">()</span>
<span class="n">w</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">class</span> <span class="nc">Toplevel1</span><span class="p">:</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">top</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
<span class="sd">'''This class configures and populates the toplevel window.</span>
<span class="sd"> top is the toplevel containing window.'''</span>
<span class="n">_bgcolor</span> <span class="o">=</span> <span class="s1">'#d9d9d9'</span> <span class="c1"># X11 color: 'gray85'</span>
<span class="n">_fgcolor</span> <span class="o">=</span> <span class="s1">'#000000'</span> <span class="c1"># X11 color: 'black'</span>
<span class="n">_compcolor</span> <span class="o">=</span> <span class="s1">'#d9d9d9'</span> <span class="c1"># X11 color: 'gray85'</span>
<span class="n">_ana1color</span> <span class="o">=</span> <span class="s1">'#d9d9d9'</span> <span class="c1"># X11 color: 'gray85'</span>
<span class="n">_ana2color</span> <span class="o">=</span> <span class="s1">'#ececec'</span> <span class="c1"># Closest X11 color: 'gray92'</span>
<span class="bp">self</span><span class="o">.</span><span class="n">style</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Style</span><span class="p">()</span>
<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">platform</span> <span class="o">==</span> <span class="s2">"win32"</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">theme_use</span><span class="p">(</span><span class="s1">'winnative'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s1">'.'</span><span class="p">,</span><span class="n">background</span><span class="o">=</span><span class="n">_bgcolor</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s1">'.'</span><span class="p">,</span><span class="n">foreground</span><span class="o">=</span><span class="n">_fgcolor</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s1">'.'</span><span class="p">,</span><span class="n">font</span><span class="o">=</span><span class="s2">"TkDefaultFont"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="s1">'.'</span><span class="p">,</span><span class="n">background</span><span class="o">=</span>
<span class="p">[(</span><span class="s1">'selected'</span><span class="p">,</span> <span class="n">_compcolor</span><span class="p">),</span> <span class="p">(</span><span class="s1">'active'</span><span class="p">,</span><span class="n">_ana2color</span><span class="p">)])</span>
<span class="n">top</span><span class="o">.</span><span class="n">geometry</span><span class="p">(</span><span class="s2">"222x135+503+286"</span><span class="p">)</span>
<span class="n">top</span><span class="o">.</span><span class="n">minsize</span><span class="p">(</span><span class="mi">116</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">top</span><span class="o">.</span><span class="n">maxsize</span><span class="p">(</span><span class="mi">1436</span><span class="p">,</span> <span class="mi">874</span><span class="p">)</span>
<span class="n">top</span><span class="o">.</span><span class="n">resizable</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">top</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"New Toplevel"</span><span class="p">)</span>
<span class="n">top</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">background</span><span class="o">=</span><span class="s2">"#d9d9d9"</span><span class="p">)</span>
<span class="n">top</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">highlightbackground</span><span class="o">=</span><span class="s2">"#d9d9d9"</span><span class="p">)</span>
<span class="n">top</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">highlightcolor</span><span class="o">=</span><span class="s2">"black"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Text1</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Text</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">relx</span><span class="o">=</span><span class="mf">0.045</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.37</span><span class="p">,</span> <span class="n">relheight</span><span class="o">=</span><span class="mf">0.259</span><span class="p">,</span> <span class="n">relwidth</span><span class="o">=</span><span class="mf">0.874</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">background</span><span class="o">=</span><span class="s2">"white"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">font</span><span class="o">=</span><span class="s2">"TkTextFont"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">foreground</span><span class="o">=</span><span class="s2">"black"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">highlightbackground</span><span class="o">=</span><span class="s2">"#d9d9d9"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">highlightcolor</span><span class="o">=</span><span class="s2">"black"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">insertbackground</span><span class="o">=</span><span class="s2">"black"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">selectbackground</span><span class="o">=</span><span class="s2">"blue"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">selectforeground</span><span class="o">=</span><span class="s2">"white"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">wrap</span><span class="o">=</span><span class="s2">"word"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">relx</span><span class="o">=</span><span class="mf">0.09</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.741</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">24</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">47</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">activebackground</span><span class="o">=</span><span class="s2">"#ececec"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">activeforeground</span><span class="o">=</span><span class="s2">"#000000"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">background</span><span class="o">=</span><span class="s2">"#d9d9d9"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="n">unknown_support</span><span class="o">.</span><span class="n">add_</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">disabledforeground</span><span class="o">=</span><span class="s2">"#a3a3a3"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">foreground</span><span class="o">=</span><span class="s2">"#000000"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">highlightbackground</span><span class="o">=</span><span class="s2">"#d9d9d9"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">highlightcolor</span><span class="o">=</span><span class="s2">"black"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">pady</span><span class="o">=</span><span class="s2">"0"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'''add'''</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">relx</span><span class="o">=</span><span class="mf">0.405</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.741</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">24</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">47</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">activebackground</span><span class="o">=</span><span class="s2">"#ececec"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">activeforeground</span><span class="o">=</span><span class="s2">"#000000"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">background</span><span class="o">=</span><span class="s2">"#d9d9d9"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="n">unknown_support</span><span class="o">.</span><span class="n">print_</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">disabledforeground</span><span class="o">=</span><span class="s2">"#a3a3a3"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">foreground</span><span class="o">=</span><span class="s2">"#000000"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">highlightbackground</span><span class="o">=</span><span class="s2">"#d9d9d9"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">highlightcolor</span><span class="o">=</span><span class="s2">"black"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">pady</span><span class="o">=</span><span class="s2">"0"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button2</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'''print'''</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox1</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Combobox</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox1</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox1</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">relx</span><span class="o">=</span><span class="mf">0.045</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.074</span><span class="p">,</span> <span class="n">relheight</span><span class="o">=</span><span class="mf">0.156</span>
<span class="p">,</span> <span class="n">relwidth</span><span class="o">=</span><span class="mf">0.869</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">value_list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">''</span><span class="p">]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">values</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">value_list</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">justify</span><span class="o">=</span><span class="s1">'right'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">textvariable</span><span class="o">=</span><span class="n">unknown_support</span><span class="o">.</span><span class="n">combobox</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">TCombobox1</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">takefocus</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="n">top</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">relx</span><span class="o">=</span><span class="mf">0.721</span><span class="p">,</span> <span class="n">rely</span><span class="o">=</span><span class="mf">0.741</span><span class="p">,</span> <span class="n">height</span><span class="o">=</span><span class="mi">24</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">47</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">activebackground</span><span class="o">=</span><span class="s2">"#ececec"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">activeforeground</span><span class="o">=</span><span class="s2">"#000000"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">background</span><span class="o">=</span><span class="s2">"#d9d9d9"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="n">unknown_support</span><span class="o">.</span><span class="n">del_</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">disabledforeground</span><span class="o">=</span><span class="s2">"#a3a3a3"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">foreground</span><span class="o">=</span><span class="s2">"#000000"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">highlightbackground</span><span class="o">=</span><span class="s2">"#d9d9d9"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">highlightcolor</span><span class="o">=</span><span class="s2">"black"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">pady</span><span class="o">=</span><span class="s2">"0"</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">Button3</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="s1">'''del'''</span><span class="p">)</span>
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">'__main__'</span><span class="p">:</span>
<span class="n">vp_start_gui</span><span class="p">()</span>
</pre></div><em>unknown_support.py</em><br/><div class="code"><pre> <span class="ch">#! /usr/bin/env python</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="kn">import</span> <span class="nn">sys</span>
<span class="k">try</span><span class="p">:</span>
<span class="kn">import</span> <span class="nn">Tkinter</span> <span class="kn">as</span> <span class="nn">tk</span>
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
<span class="kn">import</span> <span class="nn">tkinter</span> <span class="kn">as</span> <span class="nn">tk</span>
<span class="k">try</span><span class="p">:</span>
<span class="kn">import</span> <span class="nn">ttk</span>
<span class="n">py3</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
<span class="kn">import</span> <span class="nn">tkinter.ttk</span> <span class="kn">as</span> <span class="nn">ttk</span>
<span class="n">py3</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">def</span> <span class="nf">set_Tk_var</span><span class="p">():</span>
<span class="k">global</span> <span class="n">combobox</span>
<span class="n">combobox</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">StringVar</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">init</span><span class="p">(</span><span class="n">top</span><span class="p">,</span> <span class="n">gui</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="k">global</span> <span class="n">w</span><span class="p">,</span> <span class="n">top_level</span><span class="p">,</span> <span class="n">root</span>
<span class="n">w</span> <span class="o">=</span> <span class="n">gui</span>
<span class="n">top_level</span> <span class="o">=</span> <span class="n">top</span>
<span class="n">root</span> <span class="o">=</span> <span class="n">top</span>
<span class="k">def</span> <span class="nf">add_</span><span class="p">():</span>
<span class="k">global</span> <span class="n">w</span><span class="p">,</span> <span class="n">top_level</span><span class="p">,</span> <span class="n">root</span>
<span class="n">txt</span> <span class="o">=</span> <span class="n">w</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'1.0'</span><span class="p">,</span> <span class="s1">'end'</span><span class="p">)</span>
<span class="n">w</span><span class="o">.</span><span class="n">value_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">txt</span><span class="p">)</span>
<span class="n">w</span><span class="o">.</span><span class="n">TCombobox1</span><span class="p">[</span><span class="s1">'values'</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">.</span><span class="n">value_list</span>
<span class="n">w</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="s1">'1.0'</span><span class="p">,</span> <span class="s1">'end'</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'unknown_support.add_'</span><span class="p">,</span> <span class="n">txt</span><span class="p">)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">del_</span><span class="p">():</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">w</span><span class="o">.</span><span class="n">value_list</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
<span class="n">w</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="s1">'1.0'</span><span class="p">,</span> <span class="s1">'end'</span><span class="p">)</span>
<span class="n">txt</span> <span class="o">=</span> <span class="n">w</span><span class="o">.</span><span class="n">TCombobox1</span><span class="o">.</span><span class="n">get</span><span class="p">()</span>
<span class="n">w</span><span class="o">.</span><span class="n">value_list</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">w</span><span class="o">.</span><span class="n">value_list</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">txt</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">w</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="s1">'1.0'</span><span class="p">,</span> <span class="s1">'end'</span><span class="p">)</span>
<span class="n">w</span><span class="o">.</span><span class="n">value_list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">''</span><span class="p">]</span>
<span class="n">w</span><span class="o">.</span><span class="n">TCombobox1</span><span class="p">[</span><span class="s1">'values'</span><span class="p">]</span> <span class="o">=</span> <span class="n">w</span><span class="o">.</span><span class="n">value_list</span>
<span class="n">w</span><span class="o">.</span><span class="n">TCombobox1</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">w</span><span class="o">.</span><span class="n">value_list</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'unknown_support.del_'</span><span class="p">)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">print_</span><span class="p">():</span>
<span class="n">txt</span> <span class="o">=</span> <span class="n">w</span><span class="o">.</span><span class="n">TCombobox1</span><span class="o">.</span><span class="n">get</span><span class="p">()</span>
<span class="n">w</span><span class="o">.</span><span class="n">Text1</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="s1">'1.0'</span><span class="p">,</span> <span class="n">txt</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'unknown_support.print_'</span><span class="p">,</span> <span class="n">txt</span><span class="p">)</span>
<span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">destroy_window</span><span class="p">():</span>
<span class="c1"># Function which closes the window.</span>
<span class="k">global</span> <span class="n">top_level</span>
<span class="n">top_level</span><span class="o">.</span><span class="n">destroy</span><span class="p">()</span>
<span class="n">top_level</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">'__main__'</span><span class="p">:</span>
<span class="kn">import</span> <span class="nn">unknown</span>
<span class="n">unknown</span><span class="o">.</span><span class="n">vp_start_gui</span><span class="p">()</span>
</pre></div><br/>
Общий :: GUI :: сохранить введённые в окно tkinter значения
2022-02-12T06:51:49+02:00AD0DE412220585<a href="https://habr.com/ru/company/piter/blog/320864/">это</a> и я вот о чем …<br/>опишите что должна делать программа <br/>опишите как пытаетесь это сделать<br/>опишите что не получается (+ вывод ошибок если есть)<br/><br/>итд а то чет не хочется по сломоному коду догадываться как он должен работать но не работает<br/><br/>зы то что вам кажется очевидным <br/>не всегда кажется очевидным другим <br/>и да <br/>если вы здесь и просите помощь <br/>то ваше чувство очиведности <br/>очевидно ложное
Общий :: GUI :: сохранить введённые в окно tkinter значения
2022-02-11T19:10:38+02:00Ynejus220579Пытаюсь добавить функцию, которая бы считывала вводимые в поля значения для их дальнейшего использования.<br/>Для хранения используемых значений хочу использовать словарь.<br/><div class="code"><pre> <span class="kn">import</span> <span class="nn">tkinter</span>
<span class="kn">from</span> <span class="nn">tkinter.ttk</span> <span class="kn">import</span> <span class="n">Entry</span><span class="p">,</span> <span class="n">Combobox</span><span class="p">,</span> <span class="n">Checkbutton</span>
<span class="n">variables_list</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'list'</span><span class="p">,</span><span class="s1">'entry'</span><span class="p">,</span><span class="s1">'check'</span><span class="p">]</span> <span class="c1"># это те значения, что различаются </span>
<span class="n">constants</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">'names'</span><span class="p">:[</span><span class="s1">'alex'</span><span class="p">,</span><span class="s1">'billy'</span><span class="p">],</span>
<span class="s1">'color'</span><span class="p">:</span> <span class="p">{</span><span class="s1">'red'</span><span class="p">:</span><span class="mi">12</span><span class="p">,</span>
<span class="s1">'green'</span><span class="p">:</span><span class="mi">15</span><span class="p">,</span>
<span class="s1">'yellow'</span><span class="p">:</span><span class="mi">19</span><span class="p">,</span>
<span class="s1">'brown'</span><span class="p">:</span><span class="mi">18</span><span class="p">,</span>
<span class="s1">'grey'</span><span class="p">:</span><span class="mi">6</span><span class="p">},</span>
<span class="p">}</span>
<span class="k">class</span> <span class="nc">MainWindow</span><span class="p">():</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1">#создаю окно</span>
<span class="bp">self</span><span class="o">.</span><span class="n">root</span> <span class="o">=</span> <span class="n">tkinter</span><span class="o">.</span><span class="n">Tk</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">label_const</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1">#рисую кнопки и пишу названия строчек</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">variables_list</span><span class="p">:</span> <span class="n">tkinter</span><span class="o">.</span><span class="n">Label</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root</span><span class="p">,</span><span class="n">text</span> <span class="o">=</span> <span class="n">i</span><span class="p">)</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">y</span> <span class="o">=</span> <span class="mi">20</span> <span class="o">+</span> <span class="n">variables_list</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">*</span><span class="mi">20</span><span class="p">)</span>
<span class="n">tkinter</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root</span><span class="p">,</span><span class="n">text</span> <span class="o">=</span> <span class="s1">'Set'</span><span class="p">,</span><span class="n">command</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">label_var</span><span class="p">)</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="mi">80</span><span class="p">)</span>
<span class="n">tkinter</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root</span><span class="p">,</span><span class="n">text</span> <span class="o">=</span> <span class="s1">'Get'</span><span class="p">,</span><span class="n">command</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">label_get</span><span class="p">)</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="mi">105</span><span class="p">)</span>
<span class="n">tkinter</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">root</span><span class="p">,</span><span class="n">text</span> <span class="o">=</span> <span class="s1">'GO!'</span><span class="p">,</span><span class="n">command</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="k">print</span><span class="p">)</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">y</span><span class="o">=</span><span class="mi">130</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">print</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">label_var</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">variables</span> <span class="o">=</span> <span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">],</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">variables_list</span><span class="p">,[]))</span> <span class="c1"># создаю словарь, в который буду добавлять значения</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">])):</span>
<span class="n">x</span> <span class="o">=</span> <span class="mi">50</span><span class="o">+</span><span class="mi">60</span><span class="o">*</span><span class="n">i</span> <span class="c1">#отступ от края</span>
<span class="n">tkinter</span><span class="o">.</span><span class="n">Label</span><span class="p">(</span><span class="n">text</span><span class="o">=</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">][</span><span class="n">i</span><span class="p">])</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> <span class="c1"># пишу имена столбцов</span>
<span class="c1">## вот тут я лажаю :-(</span>
<span class="bp">self</span><span class="o">.</span><span class="n">var</span> <span class="o">=</span> <span class="n">Combobox</span><span class="p">(</span><span class="n">values</span><span class="o">=</span><span class="nb">tuple</span><span class="p">(</span><span class="n">constants</span><span class="p">[</span><span class="s1">'color'</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()),</span><span class="n">width</span> <span class="o">=</span> <span class="mi">5</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">var</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="mi">20</span><span class="p">)</span> <span class="c1">#выпадающий список</span>
<span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="p">[</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">][</span><span class="n">i</span><span class="p">]][</span><span class="s1">'list'</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">var</span><span class="p">)</span>
<span class="c1">#от этой строки ожидалось, что в словарь 'variables' в список ['list'] по ключу constants['names'][i] будет добавлен объект <tkinter.ttk.Combobox object .!combobox></span>
<span class="c1">#в дальнейшем, после выбора нужного значения (ввода текста или установки галочки) предполагалось записать это значение в другой словарь или просто перезаписать его на string.</span>
<span class="bp">self</span><span class="o">.</span><span class="n">var</span> <span class="o">=</span> <span class="n">tkinter</span><span class="o">.</span><span class="n">Entry</span><span class="p">(</span><span class="n">width</span> <span class="o">=</span> <span class="mi">5</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">var</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="mi">40</span><span class="p">)</span> <span class="c1">#ввод вручную</span>
<span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="p">[</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">][</span><span class="n">i</span><span class="p">]][</span><span class="s1">'entry'</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">var</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">var</span> <span class="o">=</span> <span class="n">Checkbutton</span><span class="p">(</span><span class="n">width</span> <span class="o">=</span> <span class="mi">5</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">var</span><span class="o">.</span><span class="n">place</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">x</span><span class="p">,</span><span class="n">y</span><span class="o">=</span><span class="mi">60</span><span class="p">)</span> <span class="c1"># отметка</span>
<span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="p">[</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">][</span><span class="n">i</span><span class="p">]][</span><span class="s1">'check'</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">var</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="p">)</span> <span class="c1"># нужно для проверки. Ожидался словарь 2х3х1, но вывод удручающ.</span>
<span class="k">def</span> <span class="nf">label_get</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'Получение переменных'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">variables_cur</span> <span class="o">=</span> <span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">variables_list</span><span class="p">,[])</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">constants</span><span class="p">[</span><span class="s1">'names'</span><span class="p">])):</span>
<span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">variables_list</span><span class="p">)):</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'ключ словаря переменной '</span><span class="p">,</span><span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">variables_cur</span><span class="o">.</span><span class="n">keys</span><span class="p">())[</span><span class="n">j</span><span class="p">])</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'тип переменной '</span><span class="p">,</span><span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="o">.</span><span class="n">keys</span><span class="p">())[</span><span class="n">j</span><span class="p">])][</span><span class="n">i</span><span class="p">]))</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'значение переменной '</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">variables</span><span class="o">.</span><span class="n">keys</span><span class="p">())[</span><span class="n">j</span><span class="p">])][</span><span class="n">i</span><span class="p">])</span>
<span class="c1">#self.variables_cur[str(list(self.variables_cur.keys())[j])].append(self.variables[str(list(self.variables.keys())[j])][i].get()) </span>
<span class="c1">#self.variables_cur[str(list(self.variables_cur.keys())[j])][i] = self.variables[str(list(self.variables.keys())[j])][i].get() </span>
<span class="k">print</span><span class="p">(</span><span class="s1">'тип переменной '</span><span class="p">,</span><span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">variables_cur</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">variables_cur</span><span class="o">.</span><span class="n">keys</span><span class="p">())[</span><span class="n">j</span><span class="p">])][</span><span class="n">i</span><span class="p">]))</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'значение переменной '</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">variables_cur</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">variables_cur</span><span class="o">.</span><span class="n">keys</span><span class="p">())[</span><span class="n">j</span><span class="p">])][</span><span class="n">i</span><span class="p">])</span>
<span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">label_const</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">label_var</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">root</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
<span class="n">window</span> <span class="o">=</span> <span class="n">MainWindow</span><span class="p">()</span>
<span class="n">window</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>
</pre></div>Пожалуйста, подскажите, что делать, или хотя бы в какую сторону нужно читать?