Pull to refresh

Comments 45

Такой вопрос, для такой либы есть какой-нить гуи, чтобы не ручками контролы расставлять?
Пользовался для своих нужд. Отлично работает.
Qt + PySide/PyQt. У Qt есть неплохой Designer, в котором как раз можно нарисовать интерфейс из стандартных компонентов. Потом с помощью простых командных утилит файлы дизайнера компилируються в .py файлы который потом легко подключаются к проекту.
А как сделать чтобы виджеты поддерживали текущую тему Windows?
Можно использовать стандартный модуль ttk, например, так:

from Tkinter import *
import ttk

root = Tk()
b = ttk.Button(root)
b.pack()
root.mainloop()


Тогда виджеты выглядят более естественно.
from tkinter import *
from tkinter.ttk import *

root = Tk()
b = Button(root)
b.pack()
root.mainloop()
Вот так:

import tkinter
from tkinter import ttk
root = tkinter.Tk()
button = ttk.Button(root)
button.pack()
root.mainloop()
Действительно, тикль очень древнее и чуть ли не единственное средство для того, чтобы быстренько заскриптовать какой-нибудь простенький и страшненький гуй.

Но, положа руку на сердце, кто из здесь присутствующих видел/писал/использовал что-либо, написанное при помощи этого?

За исключением тех, кто ставил SCO Unix и ранние Solaris x86 десятки лет назад :)
Естественно wxPython или PySide более подходят для создания сложных и красивых интерфейсов, но у tk есть один большой плюс, он входит в стандартную библиотеку. А значит лучше всего подходит для несложных GUI при отсутствии сторонних зависимостей
Осмелюсь возразить, вернее — уточнить: в стандартную поставку windows-установщика. А вот в линуксе, например, всё уже не так весело. Поддержка python-tk да и либы от Tcl/Tk по-умолчанию не ставятся…
Зато на маке python поставляется вместе с осью и с необходимыми библиотеками, такие как тикли, easy_install и прочее. Я был удивлен, когда на линуксе мне пришлось доустанавливать тот же easy_install
У вас дистрибутив deb-семейства? Там вроде бы действительно по-умолчанию не ставятся.

В Gentoo если указан USE-флаг tkinter (вроде так) – будет питон с поддержкой tkinter. Тоесть я хочу сказать, что это вопрос сборки, а в исходниках питон должен иметь поддержку tkinter для Windows, Linux и Mac.

P.S. Статья интересная. Спасибо!
Угу. Дебиан/Убунту/Минт.

Никто из них по-умолчанию не ставит не только tkinter, но и libtcl и т.п. Зато, вроде бы, минт ставит Qt/PyQt ;)

Вопрос: а в генте этот флаг где-нибудь по-умолчанию предполагается? Если нет, то выходит то же самое — ставьте сами :)
Насколько я знаю по-умолчанию он есть. Нашел – называется tk. Поскольку я его всегда явно указывал даже мне стало интересно включен ли он по-умолчанию :)
сторонние зависимости не здесь, так там возникнут, от них сложно деться.
Я писал для лабы гуи тк для машинки тьюринга.
В сочетании с ttk, получается достаточно симпатичный GUI. Использовал в пару популярных относительно популярных проектах под win.
Я тиклем постоянно пользуюсь. И Tk тоже. То, что он по дефолту слегка несовременно выглядит, не делает его ничуть хуже.
Кстати, в этой статье тикля собственно-то и нет. Здесь есть только Tk.
К слову можно создать красивый интерфейс путем использования графических изображений. Нарисовать фон, графические объемные кнопки. Вот тут показано как использовать графическую кнопку www.daniweb.com/software-development/python/code/216852
Не только видел, использовал, писал, но и прямо сейчас пишу. Вообще, эта статья — отличный пример почему гуи (и не только) лучше всё-же писать на Tcl/Tk, а не на Python/Tk (известном как tkinter). (Извините, позволил себе немного избавить код от дублирования и использовать стили ttk, которые в tkinter тоже есть)

pastebin.com/nz4LJQup

Но это всё игрушки. Весело было на Tcl (без Tk) многопоточный сервер писать. :3
Большое спасибо автору, фактически это единственная статья в рунете, которая легким и доступным способом описывает tk. У меня как раз были проблемы с пониманием grid, так как в англоязычных ресурсах как-то более запутано написано.
Пожалуйста, рад, что помог.
На сколько же избыточным выглядит код на Tkinter по сравнению с Tcl/Tk.
Тут, пожалуй не в библиотеке, а в самом языке дело.

Написал я как-то скриптик на двести строк на Tcl, знакомый фанатик переписал его функционально (не построчно) на Python. Потом спрашиваем у знакомого тоже фанатика, но уже ПЕРЛА, какой из вариантов (Tcl или Python) ему проще читать. Победил Tcl. :)
UFO just landed and posted this here
Где же вы были около недели назад? :)
Ждал, пока статья пройдёт модерацию (=
Долго как-то. У меня за полтора дня. Правда я её правлю еще. :)
В любом случае спасибо за статью. Нашёл информацию в ней для себя очень полезной.
Да, за статью спасибо, мне, на первый взгляд, библиотека понравилась, на досуге поэксперементирую обязательно.
Я занес эту статью в избранное. Сейчас вернулся к ней. В примере про текстовой редактор есть баг. Если нажать на кнопку Quit, то программа не закрывается, а зависает. Я погуглил. Правильный пример закрытия:
def quit()
    global root
    root.destroy()

Вот так работает без бага.
Правильно ли я понимаю, что tkinter по сути обертка над нативными средствами GUI операционной системы?
Sign up to leave a comment.

Articles