Aktywne Wpisy
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Camuflash +397
Klękać na asfalcie w imie typa na chmurkach ja #!$%@?ę xD
#bekazkatoli
#bekazkatoli
Skopiuj link
Skopiuj linkTa treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Wykop.pl
Natrafiłem na kolejną zagwozdkę przy robieniu kalkulatora w #python #tkinter . Praktycznie cała wizualna strona gotowa, jednak mam problem zaimplementować Scrollbar do widgetu Text. Korzystam z tego poradnika, ale wyskakuje błąd:
Traceback (most recent call last):
File "C:/Users/x/PycharmProjects/gui_calculator/calc.py", line 80, in
a = Calculator(root)
File "C:/Users/x/PycharmProjects/gui_calculator/calc.py", line 11, in __init__
self.scrollbarY = Scrollbar(master, orient=VERTICAL, command=self.score_area.yview).grid(
AttributeError: 'Calculator' object has no attribute 'score_area'
Całość kodu wygląda tak: https://pastebin.com/PyD6Yy5p
Gdzie jest błąd?
#programowanie #naukaprogramowania
self.scrollbarY = Scrollbar(master, orient=VERTICAL, command=**self.score_area.yview**).grid(
rowspan=5, column=8, sticky=N+S)
self.score_area = Text(master, width=40, height=10)
która wygląda tak:
https://pastebin.com/G2LzkrnF
i teraz jest:
self.score_area['yscrollcommand'] = self.scrollbarY.set
AttributeError: 'NoneType' object has no attribute 'set'
Miałem:
self.scrollbarY = Scrollbar(master, orient=VERTICAL, command=self.score_area_yview).grid(rowspan=5, column=8, sticky=N+S)
oraz
self.score_area['yscrollcommand'] = self.scrollbarY.set
więc .set się po .grid robiło i stąd błąd.
zmieniłem
self.scrollbarY = Scrollbar(master, orient=VERTICAL, command=self.score_area_yview).grid(rowspan=5, column=8, sticky=N+S)
na
self.scrollbarY = Scrollbar(master, orient=VERTICAL, command=self.score_area_yview)
self.scrollbarY.grid(rowspan=5, column=8, sticky=N+S)
i już spoko. Jednak nie mogę sobie jeszcze z rozmieszczeniem poradzić, bo coś takiego mi się pojawia - jakbym nie manewrował kolumnami - ktoś ma jakiś
W oryginale brakuje row, wtedy manager rozkładu ( ͡° ͜ʖ ͡°) wkłada w wolny wiersz.
Druga sprawa:
Wiesz może jak zrobić, żeby w Text widgecie użytkownik nie mógł nic wpisywać ani usuwać z klawiatury, ale żeby program mógł tam wpisywać rzeczy? Próbowałem ze state (zarówno w Text jak i Entry), ale wtedy ani użytkownik, ani program nie może tam nic wpisać. Próbowałem to zmienić
Przez zmienną
jest jeszcze drugi sposób , moim zdaniem gorszy.