Уведомления

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

#1 Дек. 8, 2015 16:55:53

Infineon
Зарегистрирован: 2015-12-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Всем доброго времни суток. Только начал осваивать Питона. Потратил два дня на поиски инфы и вот решил обратиться к гуру. Вопрос:
Как в tkinter можно получить текущие значения размеров окна root=Tk()?

window_size_Y=root.winfo_screenheight()
window_size_X=root.winfo_screenwidth()

Возвращает разрешение дисплея, хочу что-то подобное для окна.

Заранее спасибо.

Отредактировано Infineon (Дек. 8, 2015 16:56:13)

Офлайн

#2 Дек. 8, 2015 17:14:08

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

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

.winfo_width()

Ссылка на наиболее полную документацию.

Отредактировано 4kpt_III (Дек. 8, 2015 17:14:57)

Офлайн

#3 Дек. 9, 2015 15:25:29

Infineon
Зарегистрирован: 2015-12-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Что-то не так :-( Ошибок не выдает, но и считает неправильно. Вместо 320, пишет 1.

from tkinter import * #подключаем графический модуль tkinter
root=Tk() #создаем главное окно с названием root
#root.attributes('-fullscreen',1) # полный экран без командной строки
#root.state("zoomed") # полный экран с командной строкой
root.geometry('480x320+200+200') # задаем размер главного окна и его расположение
root.config(bg="black") # цвет заливки основного окна
#root["bg"]="black" # альтернативная запись предыдущей команды
#screen_size_X=root.winfo_screenwidth() # получаем ширину экрана
#screen_size_Y=root.winfo_screenheight() # получаем высоту экрана
window_size_X=root.winfo_width()
window_size_Y=root.winfo_height()
fsize=round(window_size_Y/3) #рассчитываем и округляем размер шрифта
Label_1=Label(root) # создаем объект надпись в главном окне
Label_1.pack() # размещаем объект надпись в окне (визуализируем)
Label_1.config(bg="black") # цвет фона надписи
Label_1.config(font=("Arial", fsize)) # шрифт и размер шрифта надписи
Label_1.config(fg="white") # цвет шрифта
Label_1.config(text=str(window_size_Y)) # выводим значение размера Y
#Label_1.config(text="00:00") # пишем текст в надписи
root.mainloop() # цикл

Отредактировано Infineon (Дек. 9, 2015 15:57:15)

Офлайн

#4 Дек. 9, 2015 15:52:44

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

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

Перед получением размеров сделайте

root.update_idletasks()

P.S. Кинул ссылку на книгу. В ней можно узнать зачем…

P.P.S. Ну и код нужно все же учиться оборачивать в теги

Офлайн

#5 Дек. 9, 2015 15:55:39

Infineon
Зарегистрирован: 2015-12-08
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Спасибо! Заработало!

Офлайн

#6 Июль 13, 2016 23:53:49

Bugap
Зарегистрирован: 2016-05-10
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Здравствуйте! Подскажите пожалуйста.
Есть овал:

from tkinter import *
root = Tk()
root.geometry('600x650+2100+350')
canvas = Canvas(root, width=600, height=650)
canvas.pack(fill=BOTH, expand=1)
canvas.create_oval(20, 20, 580, 580, fill="grey50")
root.mainloop()

1) Как сделать, чтобы окно при открытии имело положение четко по центру одного из монитора и было активным?
2) Как сделать, чтобы при изменении размера окна, овал тоже уменьшался или увеличивался?
Или как вариант не овал, а картинка. Короче полностью все объекты виджета должны пропорционально уменьшатся.
3) Как сделать, чтобы овал создавался точно по центру виджета?
Я так понял, что простого метода не существует и необходимо считывать размеры окна и всего остального?
Нужно чтобы было как в этом примере, но этот на PyQt5:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import (
    QApplication,
    QWidget,
    QLabel,
    QLCDNumber
)
from PyQt5.QtCore import (
    QTime,
    QTimer
)
class Clock(QLCDNumber):
    def __init__(self, digits=8, parent=None):
        super(Clock, self).__init__(digits, parent)
        self.setWindowTitle("Цифровые часы")
        self.timer = QTimer()
        self.timer.timeout.connect(self._update)
        self.timer.start(1000)
        self.setWindowIcon(QIcon('Clock_2.png'))
    def _update(self):
        time = QTime.currentTime().toString()
        self.display(time)
if __name__ == '__main__':
    import sys
    app = QApplication([])
    w = Clock()
    w.show()
    w.resize(300, 100)
    sys.exit(app.exec_())

Отредактировано Bugap (Июль 14, 2016 22:27:36)

Офлайн

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

Board footer

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

Powered by DjangoBB

Lo-Fi Version