Найти - Пользователи
Полная версия: tkinter - практические вопросы
Начало » GUI » tkinter - практические вопросы
1
Gradient
Решил портировать своё приложение с pyQT на более легковесный tkinter.

Есть много “простых” вопросов, с которыми по документации я не разобрался.
Полезными будут как просто идеи вроде “см. tkMegaFeature”, так и ссылки на простые примеры.
Согласен, что по некоторым пунктам нужны примеры кода. Напишу их вечером.

Как определить разрешение экрана пользователя?
даже без предположения того, что у пользователя несколько мониторов, сделать это у меня не получилось.

Как программно развернуть главное окно на весь экран?

Как задать главному окну приложения иконку и строку в заголовке?
Можно ли просто получить виндовый handle окна виджета?
Пытался посмотреть это дело у IDLE, но у меня даже “списать” не получилось :-)
У меня класс главного окна наследуется от Frame. Надо от чего-то другого?

Как передвинуть уже созданное окно?
на init я могу задать расположение и координаты, но передвинуть окно у меня так и не получилось.
вариант с пересозданием окна считаю слишком абсурдным.

Как сделать нормальный resize окна? Я пытался пользоваться и grid и pack и даже добился “интересных” результатов. Но при изменении размера окна контролы остаются на своих местах (при grid) или центрируются (если pack). А надо, чтобы text “растягивался”. Что я упустил?

По виджету Text есть несколько вопросов (но вероятно есть какой-то другой виджет, поддерживаючий нужные фичи и выбор Text был неудачен)

Как по даблклику получить текст строки, на которой кликнули (без учёта форматирования)?
не получается ни назначить обработчик на даблклик ни получить текст из строки

Как отображать пробелы и табуляции?

есть только идеи по замене символов или вставке картинок,
но реализовать пока не пытался: думаю, есть способ проще.

может, для моих целей более подойдёт другой виджет?
sp3
в гугле найдете все ответы, или в http://infohost.nmt.edu/tcc/help/pubs/tkinter.pdf
from Tkinter import *

root = Tk()
w = root.winfo_screenwidth()
h = root.winfo_screenheight()

print 'screen:',w,h
у окошка смотрите метод geometry

у текста tag_config, tag_bind
Gradient
Хорошая pdfка, именно её я и читал. И ещё какое-то хорошее руководство. Но тем не менее.
Код ваш работает, спасибо. Вечером отпишусь с кодом, а то так и впрямь ниочём.

Из той кучи вопросов неясным остался лишь “как отображать непечатаемые символы”. И гугл что-то не помогает.
Gradient
Уже, скорее, ночь, но лучше поздно, чем никогда.

Завис на изменении размеров окна.
from tkinter import *

class WND(Frame):
def __init__(self, master=None):
Frame.__init__(self, master, height=480, width=300)

self.eLine = Entry(self, relief="ridge")
self.tx = Text(self)

self.grid(sticky=N+E+S+W)
self.eLine.grid(sticky=W+E)
self.tx.grid(sticky=N+S+W+E)

if __name__ == '__main__':
root = Tk()
w = WND(master=root)
w.mainloop()
Не работает! При старте контролы нормально позиционируются, но при изменении размеров окна остаются на своих местах. Что я упустил?
sp3
Все таки пдфку вы не читали.
http://ru.wikiversity.org/wiki/%D0%9A%D1%83%D1%80%D1%81_%D0%BF%D0%BE_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B5_Tkinter_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_Python
Попробуйте на русском перечитать.

смотрите менеджер геометрии
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB