Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 23.01.2022
Сообщений: 3
1

Массив кнопок

23.11.2022, 02:11. Показов 1150. Ответов 2

Author24 — интернет-сервис помощи студентам
Как можно получить информацию о положении виджета (Checkbutton) в grid по его состоянию, подскажите пожалуйста. Если это возможно, но есть способ проще, расскажите о нем.

Это набросок программы и мне требуется узнать координаты (номер колонки и строки) флажка, значение которого только что поменяли. У меня есть идеи, 1) Добавить в команду, вызываемую флажком, строчку, которая будет помещать в переменные значение о его положении. 2) Или же проходить по всей части сетки отведенной для флажков и смотреть их состояние, если флажок в состоянии true - записывать его координаты. Но так как я первый раз работаю с Tk, не хватает знаний для реализации. Подскажите пожалуйста оптимальный способ реализации, лучше по 1 варианту.

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
from tkinter import ttk
 
 
def finish():
    root.destroy()
    print("Закрытие приложения")
 
 
 
def creat_btn():
    a = entry1.get()
    b = entry2.get()
    for i in range (1,int(a)+1):
        for j in range(0, int(b)):
            ttk.Checkbutton(text="", command=click_button).grid(row=i, column=j, columnspan=1)
 
 
clicks = 0
 
def click_button():
    global clicks
    clicks += 1
    if (clicks == 1):
        print ('1')
    elif (clicks == 2):
        print('2')
 
 
root = Tk()
root.title("")
 
entry1 = ttk.Entry(text = "длинна"#, textvariable = a)
                   )
entry1.grid(row=0, column=0, columnspan=1)
entry2 = ttk.Entry(text = "ширина"#,textvariable = b)
                   )
entry2.grid(row=0, column=1, columnspan=1)
entry3 = ttk.Entry(text = "шаг"#, textvariable = c)
                   )
entry3.grid(row=0, column=2, columnspan=1)
 
btn1 = ttk.Button(text="зафиксирвать", command = creat_btn)
btn1.grid(row=0, column=3, columnspan=1)
 
 
root.protocol("WM_DELETE_WINDOW", finish)
root.mainloop()
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2022, 02:11
Ответы с готовыми решениями:

Как в PyQT создать массив кнопок форме?
есть переменные height && width какого-то поля, нужно создать кнопки в количестве height*width,...

Создать массив кнопок, для каждой кнопок будет одинаковый обработчик
Всем привет! Нужна помощь в реализации такой задачи. Нужно создать массив кнопок, для каждой...

Массив кнопок, перемещение кнопок
По клику на button1 вызывается массив кнопок Button bt = new Button; private void...

Массив из кнопок, перетаскивание кнопок
Создал переменные, создал массив, добавил обработчики события...Итог - ничего не работает. Мне...

Как сделать массив кнопок не кликабельными, а другой массив кликабельным?
Есть 2 массива кнопок. Мне нужно, чтобы один массив был кликабельным, а другой нет, но при нажатии...

2
4 / 3 / 1
Регистрация: 24.02.2022
Сообщений: 75
21.12.2022, 18:35 2
Вызови метод config и найди x_root и y_root
Тебе будет нужен последний елемент в списке
Это и есть координаты виджета на окне
0
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
17573 / 10326 / 2820
Регистрация: 21.10.2017
Сообщений: 22,388
21.12.2022, 19:20 3
Зачем так обезьяничать? Координаты какие-то искать...
При создании всей этой кучи чекбоксов, складываешь их в список. Всё.
Надо проверить состояния - или обращаешься по индексу, или пробегаешься по списку циклом. И начхать, где именно они расположены.
0
21.12.2022, 19:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2022, 19:20
Помогаю со студенческими работами здесь

Массив: По нажатию кнопок «Вверх» и «Вниз» сортировать массив по возрастанию и убыванию соответственно.
Сгенерировать двумерный массив, заполнив его случайными числами* в диапазоне от 1 до 100. По...

Массив кнопок
есть массив кнопок, создаются программно private void ButtonAdd() { ...

Массив кнопок
Подскажите как создать в Microsoft Visual Basic 2005 Express Edition массив кнопок (8,8) например...

Массив кнопок
Есть файл text.txt в котором записаны классы. С помощью массива я создаю кнопки на которых...

Массив кнопок
Создать массив кнопок, при нажатии на любую кнопку создается новая форма ( новое окно ), на форме...

Массив кнопок
учусь в Eclipse IDE Button cu1 = (Button)findViewById(R.id.button1); Button cu2 =...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru