Latest posts on Закрытие окна после нажатия кнопки topichttps://python.su/forum/topic/37757/2019-09-08T19:54:52+03:00Общий :: GUI :: Закрытие окна после нажатия кнопки
2019-09-08T19:54:52+03:00rami204191У метода <strong>bind</strong> есть третий необязательный параметр <strong>add</strong>, если его значение <strong>'+'</strong> или <strong>True</strong>, то второе действие добавляется к первому, если третьего параметра нет или он равен <strong>False</strong>, то второе действие заменяет первое.<br/><div class="code"><pre> <span class="k">class</span> <span class="nc">Search</span><span class="p">(</span><span class="n">tk</span><span class="o">.</span><span class="n">Toplevel</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="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">init_search</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">view</span> <span class="o">=</span> <span class="n">app</span>
<span class="k">def</span> <span class="nf">init_search</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">title</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">geometry</span><span class="p">(</span><span class="s1">'300x100+400+300'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">resizable</span><span class="p">(</span><span class="bp">False</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
<span class="n">label_search</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="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Поиск'</span><span class="p">)</span>
<span class="n">label_search</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="mi">50</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="bp">self</span><span class="o">.</span><span class="n">entry_search</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="bp">self</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">entry_search</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="mi">105</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="n">width</span><span class="o">=</span><span class="mi">150</span><span class="p">)</span>
<span class="c1"># btn_cancel = ttk.Button(self, text='Закрыть', command=self.destroy)</span>
<span class="c1"># btn_cancel.place(x=185, y=50)</span>
<span class="n">btn_search</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Поиск и закрытие'</span><span class="p">)</span>
<span class="n">btn_search</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="mi">105</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
<span class="c1"># первое действие: поиск</span>
<span class="n">btn_search</span><span class="o">.</span><span class="n">bind</span><span class="p">(</span><span class="s1">'<Button-1>'</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">event</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">view</span><span class="o">.</span><span class="n">search_record</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">entry_search</span><span class="o">.</span><span class="n">get</span><span class="p">()))</span>
<span class="c1"># второе действие: закрытие окна</span>
<span class="n">btn_search</span><span class="o">.</span><span class="n">bind</span><span class="p">(</span><span class="s1">'<Button-1>'</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">event</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">destroy</span><span class="p">(),</span> <span class="n">add</span><span class="o">=</span><span class="s1">'+'</span><span class="p">)</span> <span class="c1">#или add=True</span>
</pre></div>
Общий :: GUI :: Закрытие окна после нажатия кнопки
2019-09-08T17:45:22+03:00Feelgood204189Собственно хочу чтоб по нажатию кнопки “Поиск” выполнялась функция и окно само закрывалось, да бы не плодить ещё одну кнопку “Закрыть” как в текущем варианте. <br/><br/><div class="code"><pre> <span class="k">class</span> <span class="nc">Search</span><span class="p">(</span><span class="n">tk</span><span class="o">.</span><span class="n">Toplevel</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="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">init_search</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">view</span> <span class="o">=</span> <span class="n">app</span>
<span class="k">def</span> <span class="nf">init_search</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">title</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">geometry</span><span class="p">(</span><span class="s1">'300x100+400+300'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">resizable</span><span class="p">(</span><span class="bp">False</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
<span class="n">label_search</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="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Поиск'</span><span class="p">)</span>
<span class="n">label_search</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="mi">50</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="bp">self</span><span class="o">.</span><span class="n">entry_search</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="bp">self</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">entry_search</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="mi">105</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="n">width</span><span class="o">=</span><span class="mi">150</span><span class="p">)</span>
<span class="n">btn_cancel</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Закрыть'</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">destroy</span><span class="p">)</span>
<span class="n">btn_cancel</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="mi">185</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
<span class="n">btn_search</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'Поиск'</span><span class="p">)</span>
<span class="n">btn_search</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="mi">105</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="mi">50</span><span class="p">)</span>
<span class="n">btn_search</span><span class="o">.</span><span class="n">bind</span><span class="p">(</span><span class="s1">'<Button-1>'</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">event</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">view</span><span class="o">.</span><span class="n">search_record</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">entry_search</span><span class="o">.</span><span class="n">get</span><span class="p">()))</span>
</pre></div>