Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 14.11.2018
Сообщений: 22
1

Подскажите,как методы с кнопками совместить

01.12.2019, 14:25. Показов 1289. Ответов 8

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
from tkinter import *
class Stack:
    def __init__(self):
        self.items =[]
 
    def push(self,item):
        self.items.append(item)
    
    def pop(self):
        return self.items.pop()
 
    def sorting(self):
        return self.items.sort()
    
    def clean(self):
         self.items = []
 
 
def clikced_button_push(event):
    a = entry_data_input.get()
 
 
def clikced_button_pop(event):
    pass        
 
def clicked_button_sorting(event):
    pass
 
def clicked_button_clear(event):
    pass
window = Tk()
window.title('Моделироване работы стека')
window.geometry('400x300')
label_info_operation = Label(window, text = "Операции со стеком", font=("Arial Bold", 10))
label_info_operation.grid(column = 0, row = 2)
entry_data_output = Entry(window, width = 30)
entry_data_output.grid(column = 0, row = 1)
entry_data_input = Entry(window, width = 7)
entry_data_input.grid(column = 1, row = 4)
button_push = Button(window, text='PUSH')
button_push.grid(column = 0, row = 4)
button_pop = Button(window, text='POP')
button_pop.grid(column = 0, row = 5 )
button_sorting = Button(window, text = "SORTING")
button_sorting.grid(column = 0, row = 6)
button_clean = Button(window, text = "CLEAN")
button_clean.grid(column = 0, row = 7)
 
 
window.mainloop()
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2019, 14:25
Ответы с готовыми решениями:

Receive как совместить методы
byte cldata = new byte; int bytesRead =connection.Socket.Receive(cldata); string...

Как совместить код, реализующий методы и перегружаемые операции
Есть такое задание::::) Разработать класс «Вектор» – Vektor размерности n . Определить несколько...

Подскажите как в PHP при перелистывании страниц по id кнопками Назад Следующая не наткнуться на удаленный id, а то пуста
Подскажите как в PHP при перелистывании страниц по id кнопками Назад Следующая не наткнуться на...

Подскажите по управлению кнопками
Здравствуйте . Сильно не ругайте за глупые вопросы , пару дней изучаю Аrduino , как то туго все...

8
2484 / 1797 / 749
Регистрация: 21.03.2016
Сообщений: 4,739
01.12.2019, 15:13 2
вроде так. попробуйте. не проверял.
Python
1
2
3
4
5
stak = Stack()
.....
.....
button_push = Button(window, text='PUSH',command = lambda : stak.push(arg)) # когда функц. с аргументами
button_pop = Button(window, text='POP',command = stak.pop)# без аргументов
0
0 / 0 / 0
Регистрация: 14.11.2018
Сообщений: 22
01.12.2019, 23:17  [ТС] 3
Я попробовал кнопку push сделать, но ничего в items не добавляет. В чем проблема?

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
from tkinter import *
class Stack:
    def __init__(self):
        self.items =[]
 
    def push(self):
        self.txt = entry_data_input.get()
        self.items.append(self.txt)
        label_data_output["text"] = self.items
    
    def pop(self):
        return self.items.pop()
 
    def sorting(self):
        return self.items.sort()
    
    def clean(self):
        self.items = []
    
    def print(self):
        return self.items
 
stak = Stack()
 
window = Tk()
window.title('Моделироване работы стека')
window.geometry('400x300')
label_info_operation = Label(window, text = "Операции со стеком", font=("Arial Bold", 10))
label_info_operation.pack()
label_data_output = Label(window, text= "   ")
label_data_output.pack()
entry_data_input = Entry(window, width = 7)
entry_data_input.pack()
button_push = Button(window, text='PUSH',)
button_push.pack()
button_pop = Button(window, text='POP')
button_pop.pack()
button_sorting = Button(window, text = "SORTING")
button_sorting.pack()
button_clean = Button(window, text = "CLEAN")
button_clean.pack()
button_push.bind("<Button-1>", stak.push())
 
 
 
 
window.mainloop()
 
print(stak.print())
0
1268 / 657 / 361
Регистрация: 07.01.2019
Сообщений: 2,126
02.12.2019, 00:05 4
Лучший ответ Сообщение было отмечено jarvak0 как решение

Решение

Цитата Сообщение от jarvak0 Посмотреть сообщение
В чем проблема?
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 *
class Stack:
    def __init__(self):
        self.items =[]
 
    def push(self, ev):
        self.txt = entry_data_input.get()
        self.items.append(self.txt)
        print(self.items)
        label_data_output["text"] = self.items
    
    def pop(self):
        return self.items.pop()
 
    def sorting(self):
        return self.items.sort()
    
    def clean(self):
        self.items = []
    
    def print(self):
        return self.items
 
stak = Stack()
 
window = Tk()
window.title('Моделироване работы стека')
window.geometry('400x300')
label_info_operation = Label(window, text = "Операции со стеком", font=("Arial Bold", 10))
label_info_operation.pack()
label_data_output = Label(window, text= "   ")
label_data_output.pack()
entry_data_input = Entry(window, width = 7)
entry_data_input.pack()
button_push = Button(window, text='PUSH',)
button_push.pack()
button_pop = Button(window, text='POP')
button_pop.pack()
button_sorting = Button(window, text = "SORTING")
button_sorting.pack()
button_clean = Button(window, text = "CLEAN")
button_clean.pack()
button_push.bind("<Button-1>", stak.push)
 
window.mainloop()
 
print(stak.print())
1
0 / 0 / 0
Регистрация: 14.11.2018
Сообщений: 22
02.12.2019, 00:14  [ТС] 5
tooru, по идеи после нажатия на кнопку push в items должен добавиться элемент из поля entry_data_input , а потом отображаться в label_data_output , но он почему-то ничего не добавляет в Items
0
1268 / 657 / 361
Регистрация: 07.01.2019
Сообщений: 2,126
02.12.2019, 00:22 6
Цитата Сообщение от jarvak0 Посмотреть сообщение
но он почему-то ничего не добавляет в Items
В моем коде все добавляется
0
0 / 0 / 0
Регистрация: 14.11.2018
Сообщений: 22
02.12.2019, 01:14  [ТС] 7
tooru, Спасибо,работает

Добавлено через 34 минуты
tooru, один вопрос, я доделал все кнопки,но почему он во всех методах требует два аргумента?
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
from tkinter import *
class Stack:
    def __init__(self):
        self.items =[]
 
    def push(self, ev):
        self.txt = entry_data_input.get()
        self.items.append(int(self.txt))
        print(self.items)
        label_data_output["text"] = self.items
    
    def pop(self, hm):
        self.items.pop()
        label_data_output["text"] = self.items
 
    def sorting(self, why):
        self.items.sort()
        label_data_output["text"] = self.items
        
    
    def clean(self, what):
        self.items = []
        label_data_output["text"] = self.items
    
    def print(self):
        return self.items
 
stak = Stack()
 
window = Tk()
window.title('Моделироване работы стека')
window.geometry('400x300')
label_info_operation = Label(window, text = "Операции со стеком", font=("Arial Bold", 10))
label_info_operation.pack()
label_data_output = Label(window, text= "   ")
label_data_output.pack()
entry_data_input = Entry(window, width = 7)
entry_data_input.pack()
button_push = Button(window, text='PUSH',)
button_push.pack()
button_pop = Button(window, text='POP')
button_pop.pack()
button_sorting = Button(window, text = "SORTING")
button_sorting.pack()
button_clean = Button(window, text = "CLEAN")
button_clean.pack()
button_push.bind("<Button-1>", stak.push)
button_pop.bind("<Button-1>", stak.pop)
button_sorting.bind("<Button-1>", stak.sorting)
button_clean.bind("<Button-1>", stak.clean)
 
window.mainloop()
 
print(stak.print())
0
1268 / 657 / 361
Регистрация: 07.01.2019
Сообщений: 2,126
02.12.2019, 01:22 8
Цитата Сообщение от jarvak0 Посмотреть сообщение
но почему он во всех методах требует два аргумента?
Потому что, вы привязываете кнопку к нажатию мыши и передаются еще данные мыши, если данные мыши не нужны привяжите события прямо к кнопке

Python
1
button_clean = Button(window, text = "CLEAN", command=stak.clean)
0
0 / 0 / 0
Регистрация: 14.11.2018
Сообщений: 22
02.12.2019, 01:35  [ТС] 9
tooru, спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2019, 01:35

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Подскажите 2-х симочный телефон бюджетный, с кнопками
Подскажите 2-х симочный телефон бюджетный , с кнопками , основная характеристика , достаточно...

Подскажите клавиатуру с кнопками cut/copy/paste
Подскажите подобную клавиатуру с кнопками вырезать, копировать, вставить. Пример на приложенной...

Ребята подскажите как методы сделать на минус и на деление что бы все корректно отображалось
public class math { int i,n,sum,vich=0,mul=1; int div; int A; ...

Как совместить
Всем привет. Вопрос такой, как поставить убунту, если уже стоит win7, проще ли снеси ее и после...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.