You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
3.0 KiB
48 lines
3.0 KiB
from TermTk import TTkUtil, TTkUiLoader, TTk, TTkWindow |
|
from TermTk import pyTTkSlot |
|
|
|
|
|
class MyTextEditor(TTkWindow): |
|
def __init__(self): |
|
# The "TTkUiLoader" is responsible to init this custom object |
|
# and extend it to the "textEditWindow" created in this tutorial |
|
# NOTE: no "super().__init__()" is required |
|
TTkUiLoader.loadDict(TTkUtil.base64_deflate_2_obj( |
|
"eJytVltvG0UUXtvrXV96yYVSICBWFVIdJCwHoRLUvCSmMXTr1koMFarysNkd+Yy63rV2Z0ODVKniyalGPMCg8FYBggd+AU/8pv4Ezsyur0lQEuGV5T3znTnzfd/c/EL/" + |
|
"+ZuKpj7PRY2bBySKaRgIXlyrN+oNwQssoUJCRdd34ljwcrf79DENvPBbwY2BEzn9WOH6Q6dPBL+KWJc8Y/c8ysJI8FInjCmTJfdEzdbtPOH6Lv2OqPBL+wbh5TYNrMfU" + |
|
"YyDsPK/I6AtCe8CErSPoPMvAdn4BUQwztK0vcLPjeB4Neqpawc7Jh3DjgXMYJgzJINdWRL1RbH5NY7rvEzHk5r3AwTdPvnbD0O/SgeD6ypNGH2VthZFHIoSKXcownVsS" + |
|
"kN92ZEl1FlHyLOv1q19+SDtdSU2xtn2nF4v72gutlHDDT0dGg6AIb4L5HB1pkbBPWHSIlDV8WvYiEzEvuUB9LyLKKJWvrN5KGEPzZM8alLm5xYKvcBwBVSl5ydYIXJVv" + |
|
"FbtA4LptwIJdgMX7mpbTYAlfl/eyYTSZekPVzOyAm0N46wjehne4LkUJvjCSKYdQsmBlyMtNIO5T6ZY44qYK0LejBN5PZX0kycGtdBjkgWrggz2R8EKEi8TWeMENfWEX" + |
|
"uIlxPHACYee4iW3Ze5KWuT2tcYeMNb471lg9TWP6MycTOY3FQX2iS5Yd6YLGEaydoaI6UQF3bA0+tXVYt3Pw2Um2BrJtSjcV2dvzE1I8N9lhRvb6iCxWPQ/XygmuxbO4" + |
|
"Smeb4eAwI7t2eWeH887Kspdz1jiLbQnZdpyYkYzuxjxd88J0F0d0Vd3L8TVn+fJl3FHb1CfpTu1Q3B3RzH59NMBNnUrQxhKMVIKeSkATLmb361c/fT9Ln+sdB09Jnqvj" + |
|
"Odd0BurM5VXJzPqcOn7Yw3aMGJ7weDJu+r4lsdiqfbiKeZuuSwbMaocekVu2rPqlUe50Z4wTzmhzM9mbdmHXORhNpPH/ufDjP7MuQAAhDGZlQzQvFxjyTGztvMJyc1P+" + |
|
"Bk55M/TD6NQ5L6ldhmgm98q83PyF5OJ3PMfFtC6/tvLkk/W7H99t4HNnvS/OKyQ/J6SKQka39YT/pCVbtIWMf8u+JvlryF/7z303ps+rD2hArIdJf19dqOUd4njWo8A/" + |
|
"xLuk0k58Ri2ZIYaSYm5qEZUSkiS86oZBQFy5mOPsYuRGTAJ5PcMxL0XEJfRABqvYTnuB4wu+nOD1tXngUF9eWrV9vN5xieuxH8o7LiYsu/szRHnxKxzDb7ABv/PliJzs" + |
|
"DX/An1neKuYdY17Z9eW8ezWJckOOWRsX20iT4C8JyYITqDUFFd2ETZCd6U4uHqgTaG8KMgfy8KrNEH+JhN5zkwj/PzC1RprgBD0kN1qpiuQSalfRVHNW5GWm6qYrm3eJ" + |
|
"j6ZfvDv8jWkVTNsO3SSWFElS/xfnLV9T"), self) |
|
|
|
# Connect the open routine to the (open)"filePicked" event |
|
self.getWidgetByName("BtnOpen").filePicked.connect(self.openRoutine) |
|
# Connect the save routine to the (save)"filePicked" event |
|
self.getWidgetByName("BtnSave").filePicked.connect(self.saveRoutine) |
|
|
|
# This is a generic routine to open/read a file |
|
# and push the content to the "TextEdit" widget |
|
pyTTkSlot(str) |
|
def openRoutine(self, fileName): |
|
textEdit = self.getWidgetByName("TextEdit") |
|
with open(fileName) as fp: |
|
textEdit.setText(fp.read()) |
|
|
|
# This is a generic routine to save the content of |
|
# the "TextEdit" widget to the chosen file |
|
pyTTkSlot(str) |
|
def saveRoutine(self, fileName): |
|
textEdit = self.getWidgetByName("TextEdit") |
|
with open(fileName, 'w') as fp: |
|
fp.write(textEdit.toPlainText()) |
|
|
|
# Initialize TTK, add the window widget, and start the main loop |
|
root=TTk() |
|
root.layout().addWidget(MyTextEditor()) |
|
root.mainloop()
|
|
|