|
Python. Не устанавливается текст в Entry | ☑ | ||
---|---|---|---|---|
0
megabax
22.01.17
✎
12:49
|
Добрый день. Подскажите пожалуйста, почему установленный в Entry текст не отображается? Написал на Python вот такую прогу, жму в ней кнопку, но в поел вводе текст почему то не отображается, подскажите плз, что я не так делаю:
from tkinter import * class Calculator(Frame): def __init__(self, parent): Frame.__init__(self, parent) self.parent = parent self.setUI() def button_clicked(): self.output.delete("0.0","end") self.output.insert("0.0","sdfdsfsd") def setUI(self): self.pack(fill=BOTH, expand=1) self.output=Entry(self, width=25) self.output.grid(row=0, column=0, columnspan = 5) i=0 currow=1 while i<=9: if i>=5: currow=2 btn = Button(self, text=i, width=3) btn.grid(row=currow, column=i % 5) btn.bind("Button",self.button_clicked) i=i+1 def main(): root = Tk() root.geometry("1500x900") #root.textvar=root.StringVar() app = Calculator(root) root.mainloop() if __name__ == "__main__": main() |
|||
3
Asmody
22.01.17
✎
14:43
|
(0) Потому что "insert ( index, s ) Inserts string s before the character at the given index.
|
|||
4
Asmody
22.01.17
✎
14:44
|
||||
5
lock19
22.01.17
✎
16:28
|
В тексте сразу несколько ошибок.
Вот так будет работать, но насколько соответственно задуманному я не знаю from tkinter import * class Calculator(Frame): def __init__(self, parent): Frame.__init__(self, parent) self.parent = parent self.setUI() def button_clicked(self, event): self.output.delete("0.0","end") self.output.insert("0.0","sdfdsfsd") def setUI(self): self.pack(fill=BOTH, expand=1) self.output=Text(self, height=1, width=25) self.output.grid(row=0, column=0, columnspan = 5) i=0 currow=1 while i<=9: if i>=5: currow=2 btn = Button(self, text=i, width=3) btn.grid(row=currow, column=i % 5) btn.bind("<Button-1>",self.button_clicked) i=i+1 def main(): root = Tk() root.geometry("1500x900") #root.textvar=root.StringVar() app = Calculator(root) root.mainloop() if __name__ == "__main__": main() |
|||
6
megabax
22.01.17
✎
18:21
|
(5) тоже самое, никакой текст не появляется при нажатии на кнопку
|
|||
7
megabax
22.01.17
✎
18:25
|
Может там как-то обновить надо или что?
|
|||
8
lock19
22.01.17
✎
19:00
|
(6) Не верю. Точно мой текст запускался, а не старый?
Что за система? Питон? Если заменить обработчик на def button_clicked(self, event): print(event.widget) в консоль что-нибудь выводится? |
|||
9
megabax
22.01.17
✎
19:55
|
(8) Кстати, в консоли вообще ничего не выводиться, если я использую print. Система IDLE (Python 3.5 32-bit)
|
|||
10
megabax
22.01.17
✎
19:58
|
похоже, не срабатывает обработчик, когда я делаю print вне класса, например, так:
if __name__ == "__main__": print("start") main() он работает |
|||
11
lock19
22.01.17
✎
20:14
|
Всё должно работать.
btn.bind("<Button-1>",self.button_clicked) Прописано именно так? Оперативно по питону подсказать могут на http://python.su/forum/ |
|||
12
megabax
22.01.17
✎
20:22
|
Решил вот так сделать попробовать:
btn = Button(self, text="Кнопка", width=10, command=self.button_clicked) btn.grid(row=1, column=0) Теперь при нажатии кнопочки говорит: Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\pc1\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1550, in __call__ return self.func(*args) TypeError: button_clicked() missing 1 required positional argument: 'event' |
|||
13
megabax
22.01.17
✎
20:24
|
(11) Да, и за ссылку спасибо, кажется, хороший форум.
|
|||
14
Harniti
23.01.17
✎
04:38
|
http://klassikaknigi.info/category/kompyutery-i-internet/ юзай книги по теме
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |