Latest posts on wx Application - создание и закрытие окна topichttps://python.su/forum/topic/435/2007-02-09T13:24:24+02:00Общий :: GUI :: wx Application - создание и закрытие окна
2007-02-09T13:24:24+02:00Striver30131. По поводу не хочет закрываться: если из командной строки запустить - никаких сообщений об ошибках не появляется?<br/>2. Как я понимаю структуру wx-приложений, есть главное окно, оно умирает вместе с программой. Дочерние окна можно открывать и закрывать сколько угодно. При желании главное окно можно невидимым делать… Хотя может и по-другому как-то можно.
Общий :: GUI :: wx Application - создание и закрытие окна
2007-02-09T11:11:28+02:00GoD3007<blockquote><em>Striver</em><br/>Что значит “окно не закрывается”? У меня этот фрейм спокойно закрывается и программа выходит на командную строку. Или там после app.MainLoop() что-то ещё должно происходить?</blockquote>Когда запускаю программу один раз окно закрывается нормално. Но если тут же запущу повторно, то окно ни в какую не хочет закрываться.<br/> А давайте действительно предположим что после MainLoop() что-то ещё должно происходить: ну к приемру я захочу в этом окне открыть другие окошки. Как тогда быть?
Общий :: GUI :: wx Application - создание и закрытие окна
2007-02-09T08:47:57+02:00Striver2999Что значит “окно не закрывается”? У меня этот фрейм спокойно закрывается и программа выходит на командную строку. Или там после app.MainLoop() что-то ещё должно происходить?
Общий :: GUI :: wx Application - создание и закрытие окна
2007-02-08T12:49:33+02:00GoD2976Друзья, к примеру есть у нас код создания нового окна.<br/><div class="code"><pre><span class="kn">import</span> <span class="nn">wxPython</span>
<span class="kn">from</span> <span class="nn">wxPython.wx</span> <span class="kn">import</span> <span class="o">*</span>
<span class="k">class</span> <span class="nc">MyFrame</span><span class="p">(</span><span class="n">wxFrame</span><span class="p">):</span>
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">ID</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">pos</span><span class="o">=</span><span class="n">wxDefaultPosition</span><span class="p">,</span>
<span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">900</span><span class="p">,</span> <span class="mi">600</span><span class="p">),</span> <span class="n">style</span><span class="o">=</span><span class="n">wxDEFAULT_FRAME_STYLE</span><span class="p">):</span>
<span class="n">wxFrame</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">ID</span><span class="p">,</span> <span class="n">title</span><span class="p">,</span> <span class="n">pos</span><span class="p">,</span> <span class="n">size</span><span class="p">,</span> <span class="n">style</span><span class="p">)</span>
<span class="k">class</span> <span class="nc">MyApp</span><span class="p">(</span><span class="n">wxApp</span><span class="p">):</span>
<span class="k">def</span> <span class="nf">OnInit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">frame</span> <span class="o">=</span> <span class="n">MyFrame</span><span class="p">(</span><span class="n">NULL</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="s">"Main Fraim"</span><span class="p">)</span>
<span class="n">frame</span><span class="o">.</span><span class="n">Show</span><span class="p">(</span><span class="n">true</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">SetTopWindow</span><span class="p">(</span><span class="n">frame</span><span class="p">)</span>
<span class="k">return</span> <span class="n">true</span>
<span class="n">app</span> <span class="o">=</span> <span class="n">MyApp</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
<span class="n">app</span><span class="o">.</span><span class="n">MainLoop</span><span class="p">()</span>
</pre></div><br/>Проблема в следующем, закрыть это окно можно только один раз, после повторного запуска нажимаем на закрытие, а окно не закрывается. <br/>Подскажите как сделать так чоб окно закрывалось всегда. <br/>Сразу предупреждаю, вариант с добавлением в конец программы кода - app.Destroy() , я знаю. Хотелось бы другие возможности узнать.