Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 7

Координаты Tkinter

19.03.2019, 14:18. Показов 4695. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите сделать так, чтобы выводились координаты не левого верхнего угла, а от пересечения точки координат (она имеет координаты (80; 300) если это нужно). И если не сложно, то подскажите как выводить их не в заголовке окна, а внутри (например, в строке какой-нибудь)

Вот код, который пока что есть
Python
1
2
3
4
5
6
7
def move(event):
    x = event.x
    y = event.y
    s = '{}x{}'.format(x, y)
    root.title(s)
    
root.bind('<Motion>', move)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.03.2019, 14:18
Ответы с готовыми решениями:

Координаты tkinter окна
import os from tkinter import * root = Tk() root.geometry('400x400+400+400') root.title(&quot;a&quot;) root.resizable(width=False,...

Как в Tkinter задавать координаты для класса Entry?
Доброго времени суток. Не смог решить проблему, как вставить в нужное место поле для текстового ввода Entry. C кнопками все понятно,...

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

7
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
19.03.2019, 14:35
Цитата Сообщение от Клюкина Елена Посмотреть сообщение
не левого верхнего угла
Если это значит "не от левого верхнего угла", то так

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from tkinter import *
 
root = Tk()
root.geometry('350x350')
 
w = Label(root, text="")
w.pack()
 
def move(event):
    x = event.x - 80
    y = 300 - event.y
    w['text'] = f'{x}x{y}'
 
root.bind('<Motion>', move)
 
mainloop()
0
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 7
19.03.2019, 14:43  [ТС]
Спасибо большое, но проблема в том, что это только часть кода. У меня там есть графики, которые перестают работать с новым кодом.

Вот он весь:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
from tkinter import *
import math
 
root = Tk() #создание главного окна
root.title("График функции y = sin (x)")
 
width = 700
height = 600
center = height//2
x_increment = 1 #инкремент
x_factor = 0.04 #множитель
y_amplitude = 80
f = 0.5
 
canv = Canvas (width=width, height=height, bg = 'white')
canv.pack()
 
def create_xy():
    center_line = canv.create_line(0, center, width, center, fill='green', arrow = LAST)
    height_line = canv.create_line(80, 400, 80, 80, fill='green', arrow = LAST)
    canv.create_line (80, 80, 80, 800, fill='green')
 
xy1 = []
for x in range(700):
    xy1.append(x * x_increment)
    xy1.append(int(math.sin((x-2) * x_factor) * y_amplitude) + center)
 
xy2 = []
for x in range(700):
    xy2.append(x * x_increment)
    xy2.append(int(math.sin((x+37) * (x_factor*2)) * y_amplitude) + center)
 
xy3 = []
for x in range(700):
    xy3.append(x * x_increment)
    xy3.append(int(math.sin((x+77) * (x_factor*f)) * y_amplitude) + center)
 
 
def sin(event):
    canv.delete("all")
    create_xy()
    sin_line = canv.create_line(xy1, fill='blue')
 
def sin2(event):
    canv.delete("all")
    create_xy()
    sin_line = canv.create_line(xy2, fill='blue')
 
def sin3(event):
    canv.delete("all")
    create_xy()
    sin_line = canv.create_line(xy3, fill='blue')
 
w = Label(root, text="")
w.pack()
 
def move(event):
    x = event.x - 80
    y = 300 - event.y
    w['text'] = f'{x}x{y}'
 
root.bind('<Motion>', move)
 
mainloop()
 
b = Button(text='y = sin(x)', width=10, height=3)
b.bind('<Button-1>', sin)
 
b.pack(side='left')
 
a = Button(text='y = sin 2x', width=10, height=3)
a.bind('<Button-1>', sin2)
 
a.pack(side='left')
 
c = Button(text='y = sin 0,5x', width=10, height=3)
c.bind('<Button-1>', sin3)
 
c.pack(side='left')
 
root.mainloop() #отображение окна при запуске программы
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
19.03.2019, 15:48
У вас лишний mainloop на 64 строке
0
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 7
19.03.2019, 16:30  [ТС]
Спасибо большое!
upd: А не подскажете, как сделать так, чтобы координаты x изменялись только в диапазоне от 1 до -1? То есть, чтобы отображалось, например, не 40, а 1 (т.к. вся длина графика 80)
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
19.03.2019, 16:58
Цитата Сообщение от Клюкина Елена Посмотреть сообщение
А не подскажете, как сделать так, чтобы координаты x изменялись только в диапазоне от 1 до -1
Оставить только sin и больше не умножать, если я правильно понял
0
0 / 0 / 0
Регистрация: 08.03.2019
Сообщений: 7
19.03.2019, 17:43  [ТС]
Если я для первого графика xy1 ставлю просто math.sin(x), то никакого графика нет.
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
20.03.2019, 09:07
Python
1
2
3
4
xy1 = []
for x in range(700):
    xy1.append(x * x_increment)
    xy1.append(math.sin((x-2)) + center)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.03.2019, 09:07
Помогаю со студенческими работами здесь

Виджеты tkinter и tkinter.ttk (используется Python 3.5.2)
1) Проблема с виджетом Scale (ползунок) модуля tkinter. Я создал ползунок от 1 до 50 (как на первой картинке). По умолчанию стоит на 1....

tkinter
Используя справочную литературу, изучить модуль tkinter. Реализовать класс из предыдущего задания, используя оконный интерфейс и кнопки. ...

Tkinter
Помогите пожалуйста, должно выйти окно, но я не могу понять что писать в modele.

Tkinter
Есть функция def button_clicked(event): weight = entry1.get() height = entry2.get() intweight = int(weight) ...

Tkinter - Line
I write programm which is, if press any button, draw a circle. Problem is circle draw in not random order ( only dioganal ). Why? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru