Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » tkinter размер главного окна, его цвет, и размер метки [RSS Feed]

#1 Май 15, 2013 10:10:52

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

tkinter размер главного окна, его цвет, и размер метки

Подскажите, пжлст, какие свойства\методы использовать для растяжения главного окна root = Tk() на весь экран, как его покрасить в зеленый цвет и как поменять размер шрифта в виджете label = Label(root, text='MESSAGE').pack(expand='yes')?

Щас читаю книженцию, просто может не попаду сразу на нужную информацию.
Спс.

Офлайн

#2 Май 15, 2013 10:42:55

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

tkinter размер главного окна, его цвет, и размер метки

Держите :)

import Tkinter
root = Tkinter.Tk()
root["bg"] = "green"
root.state("zoomed")
label = Tkinter.Label(root, text="New Label", font= "Arial 48", bg="green")
label.place(relx=0.5, rely=0.5, anchor="center")
root.mainloop()

P.S. Еще можно перехватить разрешение экрана и назначить размер
root.geometry(“ДлинаxШирина+отступ_от_левой_стороны+отступ_от_правой_стороны”).



Отредактировано 4kpt (Май 15, 2013 10:45:30)

Офлайн

#3 Май 15, 2013 11:05:38

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

tkinter размер главного окна, его цвет, и размер метки

спасибо за подсказку, использовал .state('zoomed').
Щас выглядит так:

from tkinter import Tk
from tkinter import Label
root_widg = Tk()
root_widg.state('zoomed')
text='''
    some text to full string adadadadadadasdasasasasasasasasasasasasas
    И ЕЩЕ ТЕКСТА ДОКИНУ И ЕЩЕ ТЕКСТА ДОКИНУ И ЕЩЕ ТЕКСТА ДОКИНУ И ЕЩЕ ТЕКСТА ДОКИНУ
И ЕЩЕ ТЕКСТА ДОКИНУИ ЕЩЕ ТЕКСТА ДОКИНУИ ЕЩЕ ТЕКСТА ДОКИНУИ ЕЩЕ ТЕКСТА ДОКИНУИ ЕЩЕ ТЕКСТА ДОКИНУ
'''
label = Label(root_widg, text=text)
label.config(bg='#4EBE46', fg='#F0F53D', font=('times', 60, 'bold'))
label.pack(expand='yes', fill='both')
root_widg.mainloop()

Теперь возник вопрос: как сделать для виджета label = Label(root_widg, text=text) автоперенос по строкам, если строка упёрлась в границу.

Мне в последствии нужно будет менять текст виджета и его цвета.
Паршу JSON, если нахожу вопросы с форума без ответа - вывожу красный со списком всех этих вопросов, если не нахожу - вывожу зеленый с приятным текстом - “всё в порядке”.
Сценарий будет запускаться с некоторой периодичностью, как бы системка простого уведомления.

Офлайн

#4 Май 15, 2013 11:24:12

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

tkinter размер главного окна, его цвет, и размер метки

По строкам… Это нужно пилить самому. Механизмы отсутствуют.
Есть еще один виджет, но он не различает слов, а режет по размеру:

label = Tkinter.Message(root, text="New Label",
                        font= "Arial 48", bg="green",
                        width=100)
P.S. Есть вариант использовать виджет Text, который все делает правильно :) Но и его придеться допилить :(



Отредактировано 4kpt (Май 15, 2013 11:26:57)

Офлайн

#5 Май 15, 2013 13:55:22

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

tkinter размер главного окна, его цвет, и размер метки

Для расширения окна на весь экран поменял код, теперь так:

root_widg = Tk()
root_widg.title('Уведомление по неотвеченным вопросам')
w, h = root_widg.winfo_screenwidth(), root_widg.winfo_screenheight()
root_widg.overrideredirect(1)
root_widg.geometry("{}x{}+0+0".format(w, h))  # Разварчиваем окно на весь экран.
...
Да уж , большая это тема - GUI. быстро не потянуть.
Щас еще и клавишу Escape надо прилепить для выхода из окна и еще при выходе из окна закончить поток threading.Timer(10, output)

Офлайн

#6 Май 15, 2013 14:14:02

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

tkinter размер главного окна, его цвет, и размер метки

buddha
Еще в ХР есть глюк. Если использовать полное разрешение экрана, может не работать переключение шрифторв. Посему рекомендую

w, h = root_widg.winfo_screenwidth() - 4, root_widg.winfo_screenheight() - 4
4 пикселя из собственного опыта :)

Еще. Это - лучше не делать
root_widg.overrideredirect(1)
Оконный менеджер игнорирует это окно. При переключении между окнами оно пропадет…



Отредактировано 4kpt (Май 15, 2013 14:17:01)

Офлайн

#7 Май 15, 2013 15:32:49

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

tkinter размер главного окна, его цвет, и размер метки

Спасибо.

А есть возможность выровнять текст в виджете Label по краю левому?

нашел параметр Label(justify='left')

Отредактировано buddha (Май 15, 2013 15:40:36)

Офлайн

#8 Май 15, 2013 15:34:52

buddha
От:
Зарегистрирован: 2012-03-02
Сообщения: 422
Репутация: +  15  -
Профиль   Отправить e-mail  

tkinter размер главного окна, его цвет, и размер метки

4kpt
Еще. Это - лучше не делать
root_widg.overrideredirect(1)
Оконный менеджер игнорирует это окно. При переключении между окнами оно пропадет…

А вот нужно, чтобы окно полностью заполняло экран(т.е. без панели задач и главной панели окна).
Как сделать по другому я не знаю.

Отредактировано buddha (Май 15, 2013 15:35:08)

Офлайн

#9 Май 15, 2013 15:39:18

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

tkinter размер главного окна, его цвет, и размер метки

buddha
А есть возможность выровнять текст в виджете Label по краю левому?
Параметр justify.

P.S. Не за что :)



Отредактировано 4kpt (Май 15, 2013 15:44:57)

Офлайн

#10 Май 15, 2013 15:46:44

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

tkinter размер главного окна, его цвет, и размер метки


buddha
А вот нужно, чтобы окно полностью заполняло экран(т.е. без панели задач и главной панели окна).
Для каких задач, обясните. Может найдем альтернативное решение :)



Офлайн

  • Начало
  • » GUI
  • » tkinter размер главного окна, его цвет, и размер метки[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version