Latest posts on ttk notebook topichttps://python.su/forum/topic/20754/2019-08-01T21:36:07+03:00Общий :: GUI :: ttk notebook
2019-08-01T21:36:07+03:00ivikis203401Как ярлычки вкладок (ttk notebook) разместить внизу?<br/><br/>Не то, что хотелось:<br/> s = ttk.Style()<br/> s.configure('TNotebook', tabposition='sw')<br/>
Общий :: GUI :: ttk notebook
2017-10-23T03:26:57+03:00lenivaya10001185213<blockquote><em>4kpt</em><br/>Ну что, работает?</blockquote>вот так работает в python 3.4.4, исправлен только импорт<br/><div class="code"><pre> <span class="c1"># -*- coding: utf-8 -*-</span>
<span class="kn">import</span> <span class="nn">tkinter</span>
<span class="kn">from</span> <span class="nn">tkinter</span> <span class="kn">import</span> <span class="n">ttk</span>
<span class="n">mainframe</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="c1"># use width x height + x_offset + y_offset (no spaces!)</span>
<span class="n">mainframe_width</span> <span class="o">=</span> <span class="p">(</span><span class="n">mainframe</span><span class="o">.</span><span class="n">winfo_screenwidth</span><span class="p">()</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="mi">200</span><span class="p">)</span>
<span class="n">mainframe_heigth</span> <span class="o">=</span> <span class="p">(</span><span class="n">mainframe</span><span class="o">.</span><span class="n">winfo_screenheight</span><span class="p">()</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="mi">250</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">geometry</span><span class="p">(</span><span class="s2">"</span><span class="si">%d</span><span class="s2">x</span><span class="si">%d</span><span class="s2">+</span><span class="si">%d</span><span class="s2">+</span><span class="si">%d</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="mi">800</span><span class="p">,</span> <span class="mi">600</span><span class="p">,</span> <span class="n">mainframe_width</span><span class="p">,</span> <span class="n">mainframe_heigth</span><span class="p">))</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'test'</span><span class="p">)</span>
<span class="n">n_book</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Notebook</span><span class="p">(</span><span class="n">mainframe</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">fill</span><span class="o">=</span><span class="s1">'both'</span><span class="p">,</span> <span class="n">expand</span><span class="o">=</span><span class="s1">'yes'</span><span class="p">)</span>
<span class="c1"># create a child frame for each page</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="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s2">"1.TFrame"</span><span class="p">,</span> <span class="n">background</span><span class="o">=</span><span class="s2">"red"</span><span class="p">)</span>
<span class="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s2">"2.TFrame"</span><span class="p">,</span> <span class="n">background</span><span class="o">=</span><span class="s2">"blue"</span><span class="p">)</span>
<span class="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s2">"3.TFrame"</span><span class="p">,</span> <span class="n">background</span><span class="o">=</span><span class="s2">"green"</span><span class="p">)</span>
<span class="n">frame_1</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">mainframe</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s2">"1.TFrame"</span><span class="p">)</span>
<span class="n">frame_2</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">mainframe</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s2">"2.TFrame"</span><span class="p">)</span>
<span class="n">frame_3</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">mainframe</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s2">"3.TFrame"</span><span class="p">)</span>
<span class="n">frame_1</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">frame_2</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">frame_3</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="c1"># create the pages</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'page1'</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_2</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'page2'</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_3</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'page3'</span><span class="p">)</span>
<span class="c1"># put a button widget on child frame f1 on page1</span>
<span class="n">btn1</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="n">frame_1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s1">'button1'</span><span class="p">)</span>
<span class="n">btn1</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">side</span><span class="o">=</span><span class="s1">'left'</span><span class="p">,</span> <span class="n">anchor</span><span class="o">=</span><span class="s1">'nw'</span><span class="p">,</span> <span class="n">padx</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">pady</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
</pre></div>
Общий :: GUI :: ttk notebook
2013-02-21T13:55:09+02:004kpt105454<strong>Griffon</strong><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="o">*</span>
</pre></div>В этом случае пересечений не будет, так как для вызова виджетов tkinter необходимо явно указывать имя модуля (т.е. tkinter.Button или tkinter.Frame), а для вызова методов ttk нужно их просто вызывать (извините, получилась товтология), т.е. (Buuton, Frame).<br/>Либо действительно необходимо четко следить за импортированием. За это я не люблю инструкцию<br/>from имя_модуля import* о чем уже не однократно писал.<br/>Помню раньше, всем поголовно, в каждом посте по Tkinter рекомендовал не использовать инструкцию from Tkinter import* (быля у меня такая манечка) :)
Общий :: GUI :: ttk notebook
2013-02-21T09:42:44+02:00Griffon105436Все просто. В Tk есть набор виджетов. В ttk есть набор виджетов. Оба набора имеют пересечение, то есть определение одних и тех же виджетов. Таким образом import * переопределяет имена классов, в зависимости от того что вы импортируете последним.<br/><br/>Теперь становится понятным почему пропадают свойства у кнопок и прочих элементов. Вы последним импортируете ttk, а в нем стили реализованы в своей философии, и все свойства определяющие стили Tk теперь вызывают ошибку. <br/><br/>Вам следует почитать про импорт, как рекомендуют выше, а так же почитать по Tkinter и ttk, и увидеть разницу между одноименными виджетами.<br/><br/><a href="http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/index.html">Последняя (известная мне) документация по Tkinter и ttk.</a>
Общий :: GUI :: ttk notebook
2013-02-21T04:08:44+02:00py.user.next105423<blockquote><em>Ubhra</em><br/>А может можно сразу все импортировать? Чтоб без всяких вылетов: не найден tk или tkinter и т.д.</blockquote>засоряется пространство имён<br/>прочитай <strong>import this</strong>
Общий :: GUI :: ttk notebook
2013-02-20T17:13:56+02:004kpt105406Проблема здесь в том, что в tkinter и ttk есть виджет с одинаковым названием - frame. Как системе распозднать, какой виджет Вы имеете ввиду??<br/>Я думаю нужно писать так…<br/><div class="code"><pre><span class="c"># -*- coding: utf-8 -*-</span>
<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="o">*</span>
<span class="n">mainframe</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="c"># use width x height + x_offset + y_offset (no spaces!)</span>
<span class="n">mainframe_width</span> <span class="o">=</span> <span class="p">(</span><span class="n">mainframe</span><span class="o">.</span><span class="n">winfo_screenwidth</span><span class="p">()</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="mi">400</span><span class="p">)</span>
<span class="n">mainframe_heigth</span> <span class="o">=</span> <span class="p">(</span><span class="n">mainframe</span><span class="o">.</span><span class="n">winfo_screenheight</span><span class="p">()</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="mi">250</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">geometry</span><span class="p">(</span><span class="s">"</span><span class="si">%d</span><span class="s">x</span><span class="si">%d</span><span class="s">+</span><span class="si">%d</span><span class="s">+</span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="mi">800</span><span class="p">,</span> <span class="mi">500</span><span class="p">,</span> <span class="n">mainframe_width</span><span class="p">,</span> <span class="n">mainframe_heigth</span><span class="p">))</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">'test'</span><span class="p">)</span>
<span class="n">n_book</span> <span class="o">=</span> <span class="n">Notebook</span><span class="p">(</span><span class="n">mainframe</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">fill</span><span class="o">=</span><span class="s">'both'</span><span class="p">,</span> <span class="n">expand</span><span class="o">=</span><span class="s">'yes'</span><span class="p">)</span>
<span class="c"># create a child frame for each page</span>
<span class="n">style</span> <span class="o">=</span> <span class="n">Style</span><span class="p">()</span>
<span class="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s">"1.TFrame"</span><span class="p">,</span> <span class="n">background</span><span class="o">=</span><span class="s">"red"</span><span class="p">)</span>
<span class="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s">"2.TFrame"</span><span class="p">,</span> <span class="n">background</span><span class="o">=</span><span class="s">"blue"</span><span class="p">)</span>
<span class="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s">"3.TFrame"</span><span class="p">,</span> <span class="n">background</span><span class="o">=</span><span class="s">"green"</span><span class="p">)</span>
<span class="n">frame_1</span> <span class="o">=</span> <span class="n">Frame</span><span class="p">(</span><span class="n">mainframe</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s">"1.TFrame"</span><span class="p">)</span>
<span class="n">frame_2</span> <span class="o">=</span> <span class="n">Frame</span><span class="p">(</span><span class="n">mainframe</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s">"2.TFrame"</span><span class="p">)</span>
<span class="n">frame_3</span> <span class="o">=</span> <span class="n">Frame</span><span class="p">(</span><span class="n">mainframe</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s">"3.TFrame"</span><span class="p">)</span>
<span class="n">frame_1</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">frame_2</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">frame_3</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="c"># create the pages</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page1'</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_2</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page2'</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_3</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page3'</span><span class="p">)</span>
<span class="c"># put a button widget on child frame f1 on page1</span>
<span class="n">btn1</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="n">frame_1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'button1'</span><span class="p">)</span>
<span class="n">btn1</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">side</span><span class="o">=</span><span class="s">'left'</span><span class="p">,</span> <span class="n">anchor</span><span class="o">=</span><span class="s">'nw'</span><span class="p">,</span> <span class="n">padx</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">pady</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
</pre></div>
Общий :: GUI :: ttk notebook
2013-02-20T16:17:55+02:00Ubhra105404Вот вычитал тут:<br/><a href="http://docs.python.org/dev/library/tkinter.ttk.html?highlight=ttk#using-ttk">http://docs.python.org/dev/library/tkinter.ttk.html?highlight=ttk#using-ttk</a><br/><br/>Можете пояснить это?<br/><br/><blockquote>To start using Ttk, import its module:<br/><div class="code"><pre><span class="kn">from</span> <span class="nn">tkinter</span> <span class="kn">import</span> <span class="n">ttk</span>
</pre></div><br/>To override the basic Tk widgets, the import should follow the Tk import:<br/><div class="code"><pre><span class="kn">from</span> <span class="nn">tkinter</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">from</span> <span class="nn">tkinter.ttk</span> <span class="kn">import</span> <span class="o">*</span>
</pre></div></blockquote>
Общий :: GUI :: ttk notebook
2013-02-20T15:41:27+02:00Ubhra105403Напрямую импортировать ttk не получается. Пишет ImportError: No madule named ‘ttk’<br/>Получается только tkinter.ttk
Общий :: GUI :: ttk notebook
2013-02-20T14:21:02+02:004kpt105402Гарантий не даю, но скорее всего этот код будет работать…<br/>Просто я не пишу под 3.Х :)<br/><div class="code"><pre><span class="c"># -*- coding: utf-8 -*-</span>
<span class="kn">import</span> <span class="nn">tkinter</span>
<span class="kn">import</span> <span class="nn">ttk</span>
<span class="n">mainframe</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="c"># use width x height + x_offset + y_offset (no spaces!)</span>
<span class="n">mainframe_width</span> <span class="o">=</span> <span class="p">(</span><span class="n">mainframe</span><span class="o">.</span><span class="n">winfo_screenwidth</span><span class="p">()</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="mi">200</span><span class="p">)</span>
<span class="n">mainframe_heigth</span> <span class="o">=</span> <span class="p">(</span><span class="n">mainframe</span><span class="o">.</span><span class="n">winfo_screenheight</span><span class="p">()</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="mi">250</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">geometry</span><span class="p">(</span><span class="s">"</span><span class="si">%d</span><span class="s">x</span><span class="si">%d</span><span class="s">+</span><span class="si">%d</span><span class="s">+</span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="mi">800</span><span class="p">,</span> <span class="mi">600</span><span class="p">,</span> <span class="n">mainframe_width</span><span class="p">,</span> <span class="n">mainframe_heigth</span><span class="p">))</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">'test'</span><span class="p">)</span>
<span class="n">n_book</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Notebook</span><span class="p">(</span><span class="n">mainframe</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">fill</span><span class="o">=</span><span class="s">'both'</span><span class="p">,</span> <span class="n">expand</span><span class="o">=</span><span class="s">'yes'</span><span class="p">)</span>
<span class="c"># create a child frame for each page</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="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s">"1.TFrame"</span><span class="p">,</span> <span class="n">background</span><span class="o">=</span><span class="s">"red"</span><span class="p">)</span>
<span class="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s">"2.TFrame"</span><span class="p">,</span> <span class="n">background</span><span class="o">=</span><span class="s">"blue"</span><span class="p">)</span>
<span class="n">style</span><span class="o">.</span><span class="n">configure</span><span class="p">(</span><span class="s">"3.TFrame"</span><span class="p">,</span> <span class="n">background</span><span class="o">=</span><span class="s">"green"</span><span class="p">)</span>
<span class="n">frame_1</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">mainframe</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s">"1.TFrame"</span><span class="p">)</span>
<span class="n">frame_2</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">mainframe</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s">"2.TFrame"</span><span class="p">)</span>
<span class="n">frame_3</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">mainframe</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="s">"3.TFrame"</span><span class="p">)</span>
<span class="n">frame_1</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">frame_2</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="n">frame_3</span><span class="o">.</span><span class="n">pack</span><span class="p">()</span>
<span class="c"># create the pages</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page1'</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_2</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page2'</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_3</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page3'</span><span class="p">)</span>
<span class="c"># put a button widget on child frame f1 on page1</span>
<span class="n">btn1</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="n">frame_1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'button1'</span><span class="p">)</span>
<span class="n">btn1</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">side</span><span class="o">=</span><span class="s">'left'</span><span class="p">,</span> <span class="n">anchor</span><span class="o">=</span><span class="s">'nw'</span><span class="p">,</span> <span class="n">padx</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">pady</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
</pre></div>Ну что, работает?<br/>Код исправил… Не хватало двух начений.
Общий :: GUI :: ttk notebook
2013-02-20T14:09:18+02:00Ubhra1054013.3 + pyscripter 2.5.3
Общий :: GUI :: ttk notebook
2013-02-20T14:01:31+02:004kpt105400<strong>Ubhra</strong><br/>Какой питон?
Общий :: GUI :: ttk notebook
2013-02-20T13:58:56+02:00Ubhra105399Вообще отстой получается.<br/>А может можно сразу все импортировать? Чтоб без всяких вылетов: не найден tk или tkinter и т.д.<br/>Вот так вроде работает. Но но пришлось убрать фон. Оно теперь и bg не знает что такое.<br/><div class="code"><pre><span class="c"># -*- coding: utf-8 -*-</span>
<span class="kn">from</span> <span class="nn">tkinter</span> <span class="kn">import</span><span class="o">*</span>
<span class="kn">from</span> <span class="nn">tkinter.ttk</span> <span class="kn">import</span><span class="o">*</span>
<span class="n">mainframe</span> <span class="o">=</span> <span class="n">Tk</span><span class="p">()</span>
<span class="c"># use width x height + x_offset + y_offset (no spaces!)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">minsize</span><span class="p">(</span><span class="mi">800</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
<span class="n">mainframe_x</span> <span class="o">=</span> <span class="mi">800</span>
<span class="n">mainframe_y</span> <span class="o">=</span> <span class="mi">500</span>
<span class="n">mainframe_width</span> <span class="o">=</span> <span class="p">(</span><span class="n">mainframe</span><span class="o">.</span><span class="n">winfo_screenwidth</span><span class="p">()</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">mainframe_x</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span>
<span class="n">mainframe_heigth</span> <span class="o">=</span> <span class="p">(</span><span class="n">mainframe</span><span class="o">.</span><span class="n">winfo_screenheight</span><span class="p">()</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">mainframe_y</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">geometry</span><span class="p">(</span><span class="s">"</span><span class="si">%d</span><span class="s">x</span><span class="si">%d</span><span class="s">+</span><span class="si">%d</span><span class="s">+</span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">mainframe_x</span><span class="p">,</span> <span class="n">mainframe_y</span><span class="p">,</span> <span class="n">mainframe_width</span><span class="p">,</span> <span class="n">mainframe_heigth</span><span class="p">))</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">'test'</span><span class="p">)</span>
<span class="n">mainframe_menu</span> <span class="o">=</span> <span class="n">Menu</span><span class="p">(</span><span class="n">mainframe</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">config</span><span class="p">(</span><span class="n">menu</span> <span class="o">=</span> <span class="n">mainframe_menu</span><span class="p">)</span>
<span class="n">n_book</span> <span class="o">=</span> <span class="n">Notebook</span><span class="p">(</span><span class="n">mainframe</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">fill</span><span class="o">=</span><span class="s">'both'</span><span class="p">,</span> <span class="n">expand</span><span class="o">=</span><span class="s">'yes'</span><span class="p">)</span>
<span class="c"># create a child frame for each page</span>
<span class="n">frame_1</span> <span class="o">=</span> <span class="n">Frame</span><span class="p">()</span>
<span class="n">frame_2</span> <span class="o">=</span> <span class="n">Frame</span><span class="p">()</span>
<span class="n">frame_3</span> <span class="o">=</span> <span class="n">Frame</span><span class="p">()</span>
<span class="c"># create the pages</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page1'</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_2</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page2'</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_3</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page3'</span><span class="p">)</span>
<span class="c"># put a button widget on child frame f1 on page1</span>
<span class="n">btn1</span> <span class="o">=</span> <span class="n">Button</span><span class="p">(</span><span class="n">frame_1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'button1'</span><span class="p">)</span>
<span class="n">btn1</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">side</span><span class="o">=</span><span class="s">'left'</span><span class="p">,</span> <span class="n">anchor</span><span class="o">=</span><span class="s">'nw'</span><span class="p">,</span> <span class="n">padx</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">pady</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
</pre></div>
Общий :: GUI :: ttk notebook
2013-02-20T13:33:54+02:00Ubhra105396Вот пример<br/><div class="code"><pre><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="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="c"># use width x height + x_offset + y_offset (no spaces!)</span>
<span class="n">root</span><span class="o">.</span><span class="n">geometry</span><span class="p">(</span><span class="s">"</span><span class="si">%d</span><span class="s">x</span><span class="si">%d</span><span class="s">+</span><span class="si">%d</span><span class="s">+</span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="mi">300</span><span class="p">,</span> <span class="mi">200</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">50</span><span class="p">))</span>
<span class="n">root</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">'test the ttk.Notebook'</span><span class="p">)</span>
<span class="n">nb</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Notebook</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
<span class="n">nb</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">fill</span><span class="o">=</span><span class="s">'both'</span><span class="p">,</span> <span class="n">expand</span><span class="o">=</span><span class="s">'yes'</span><span class="p">)</span>
<span class="c"># create a child frame for each page</span>
<span class="n">f1</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">bg</span><span class="o">=</span><span class="s">'red'</span><span class="p">)</span>
<span class="n">f2</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">bg</span><span class="o">=</span><span class="s">'blue'</span><span class="p">)</span>
<span class="n">f3</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">bg</span><span class="o">=</span><span class="s">'green'</span><span class="p">)</span>
<span class="c"># create the pages</span>
<span class="n">nb</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">f1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page1'</span><span class="p">)</span>
<span class="n">nb</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">f2</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page2'</span><span class="p">)</span>
<span class="n">nb</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">f3</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page3'</span><span class="p">)</span>
<span class="c"># put a button widget on child frame f1 on page1</span>
<span class="n">btn1</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">f1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'button1'</span><span class="p">)</span>
<span class="n">btn1</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">side</span><span class="o">=</span><span class="s">'left'</span><span class="p">,</span> <span class="n">anchor</span><span class="o">=</span><span class="s">'nw'</span><span class="p">,</span> <span class="n">padx</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">pady</span><span class="o">=</span><span class="mi">5</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/>У меня это не работает пока с импортом не разберусь.<br/><div class="code"><pre><span class="c"># -*- coding: utf-8 -*-</span>
<span class="kn">from</span> <span class="nn">tkinter</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">import</span> <span class="nn">tkinter.ttk</span>
<span class="n">mainframe</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="c"># use width x height + x_offset + y_offset (no spaces!)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">minsize</span><span class="p">(</span><span class="mi">800</span><span class="p">,</span><span class="mi">500</span><span class="p">)</span>
<span class="n">mainframe_x</span> <span class="o">=</span> <span class="mi">800</span>
<span class="n">mainframe_y</span> <span class="o">=</span> <span class="mi">500</span>
<span class="n">mainframe_width</span> <span class="o">=</span> <span class="p">(</span><span class="n">mainframe</span><span class="o">.</span><span class="n">winfo_screenwidth</span><span class="p">()</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">mainframe_x</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span>
<span class="n">mainframe_heigth</span> <span class="o">=</span> <span class="p">(</span><span class="n">mainframe</span><span class="o">.</span><span class="n">winfo_screenheight</span><span class="p">()</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">mainframe_y</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">geometry</span><span class="p">(</span><span class="s">"</span><span class="si">%d</span><span class="s">x</span><span class="si">%d</span><span class="s">+</span><span class="si">%d</span><span class="s">+</span><span class="si">%d</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">mainframe_x</span><span class="p">,</span> <span class="n">mainframe_y</span><span class="p">,</span> <span class="n">mainframe_width</span><span class="p">,</span> <span class="n">mainframe_heigth</span><span class="p">))</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s">'test'</span><span class="p">)</span>
<span class="n">mainframe_menu</span> <span class="o">=</span> <span class="n">Menu</span><span class="p">(</span><span class="n">mainframe</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">geometry</span><span class="p">(</span><span class="n">Menu</span> <span class="o">=</span> <span class="n">mainframe_menu</span><span class="p">)</span>
<span class="n">n_book</span> <span class="o">=</span> <span class="n">ttk</span><span class="o">.</span><span class="n">Notebook</span><span class="p">(</span><span class="n">mainframe</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">fill</span><span class="o">=</span><span class="s">'both'</span><span class="p">,</span> <span class="n">expand</span><span class="o">=</span><span class="s">'yes'</span><span class="p">)</span>
<span class="c"># create a child frame for each page</span>
<span class="n">frame_1</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">bg</span><span class="o">=</span><span class="s">'red'</span><span class="p">)</span>
<span class="n">frame_2</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">bg</span><span class="o">=</span><span class="s">'blue'</span><span class="p">)</span>
<span class="n">frame_3</span> <span class="o">=</span> <span class="n">tk</span><span class="o">.</span><span class="n">Frame</span><span class="p">(</span><span class="n">bg</span><span class="o">=</span><span class="s">'green'</span><span class="p">)</span>
<span class="c"># create the pages</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page1'</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_2</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page2'</span><span class="p">)</span>
<span class="n">n_book</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">frame_3</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'page3'</span><span class="p">)</span>
<span class="c"># put a button widget on child frame f1 on page1</span>
<span class="n">btn1</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">frame_1</span><span class="p">,</span> <span class="n">text</span><span class="o">=</span><span class="s">'button1'</span><span class="p">)</span>
<span class="n">btn1</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="n">side</span><span class="o">=</span><span class="s">'left'</span><span class="p">,</span> <span class="n">anchor</span><span class="o">=</span><span class="s">'nw'</span><span class="p">,</span> <span class="n">padx</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">pady</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="n">mainframe</span><span class="o">.</span><span class="n">mainloop</span><span class="p">()</span>
</pre></div>
Общий :: GUI :: ttk notebook
2013-02-20T13:26:15+02:004kpt105395Вот пример работы со вкладками. Только Вам нужно поменять Tkinter на tkinter…<br/><a href="http://www.python.su/forum/topic/20690/">http://www.python.su/forum/topic/20690/</a>
Общий :: GUI :: ttk notebook
2013-02-20T13:24:05+02:004kpt105394Что Вы делаете?<br/>Зачем Вы импортируете уже импортированные модули?<br/>Я же Вам написал, что скорее всего, ttk не является частью tkinter, посему его импортировать нужно отдельно.<br/>Приведите больше кода. Ничего же не понятно.