Найти - Пользователи
Полная версия: tkinter размер главного окна, его цвет, и размер метки
Начало » GUI » tkinter размер главного окна, его цвет, и размер метки
1 2 3
buddha
Подскажите, пжлст, какие свойства\методы использовать для растяжения главного окна root = Tk() на весь экран, как его покрасить в зеленый цвет и как поменять размер шрифта в виджете label = Label(root, text='MESSAGE').pack(expand='yes')?

Щас читаю книженцию, просто может не попаду сразу на нужную информацию.
Спс.
4kpt
Держите :)
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Ширина+отступ_от_левой_стороны+отступ_от_правой_стороны”).
buddha
спасибо за подсказку, использовал .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, если нахожу вопросы с форума без ответа - вывожу красный со списком всех этих вопросов, если не нахожу - вывожу зеленый с приятным текстом - “всё в порядке”.
Сценарий будет запускаться с некоторой периодичностью, как бы системка простого уведомления.
4kpt
По строкам… Это нужно пилить самому. Механизмы отсутствуют.
Есть еще один виджет, но он не различает слов, а режет по размеру:
label = Tkinter.Message(root, text="New Label",
                        font= "Arial 48", bg="green",
                        width=100)
P.S. Есть вариант использовать виджет Text, который все делает правильно :) Но и его придеться допилить :(
buddha
Для расширения окна на весь экран поменял код, теперь так:
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)
4kpt
buddha
Еще в ХР есть глюк. Если использовать полное разрешение экрана, может не работать переключение шрифторв. Посему рекомендую
w, h = root_widg.winfo_screenwidth() - 4, root_widg.winfo_screenheight() - 4
4 пикселя из собственного опыта :)

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

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

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

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

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

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