Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функции копирования и вставки текста, Подскажите как описать эти функции 
:(
    Опции темы
star_vit
Дата 13.5.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.5.2007

Репутация: 1
Всего: 1



Здравствуйте!
Меня попросили мои знакомые помочь им в написании простейшего текстового редактора на python для сдачи в институт. К сожалению, у меня нет опыта работы с этим языком и времени на изучение осталось мало, т.к. сдавать надо уже 15.04.2007 (дотянули, блин (((().  Подскажите каким образом пишутся функции вставки, копирования, удаления выделенного фрагмента текста из верхней строки меню. 

Заранее спасибо!
PM MAIL   Вверх
setq
Дата 13.5.2007, 13:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(star_vit @  13.5.2007,  12:31 Найти цитируемый пост)
...сдавать надо уже 15.04.2007...

Прошу обратить внимание, сегодня 13.5.2007)

Вообще, волноваться не стоит. Питон достаточно простой в освоении язык. Правда, у Питона есть не одна, а несколько GUI библиотек и не совсем понятно, с чем Вы работаете. Если это Tkinter, то посмотрите здесь. Вам нужно прочитать обзор, а также главы про Menu widget и Text widget.
  Вверх
pythonwin
Дата 13.5.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



star_vit,  раскажи какие GUI библиотеки используешь?
QT, GTK, WxPython
PM WWW GTalk Jabber   Вверх
star_vit
Дата 15.5.2007, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.5.2007

Репутация: 1
Всего: 1



Еще раз побеспокою. Вот исходник. Подскажите как сюда добавить функции копирования, вставки, cut фрагмента текста:

Код

from Tkinter import *
from ScrolledText import *
import tkMessageBox
from tkFileDialog import *
import fileinput

tl=[]
root=None

# Функция выхода из редактора

def die():
  sys.exit(0)


def about():
  tkMessageBox.showinfo("Текстовый редактор", \
    "Версия 1.0\n"\)
def neweditor():
    global root
    tl.append(editor(root))

class editor:
  def __init__(self, rt):
    if rt==None:
      self.t=Tk()
    else:
      self.t=Toplevel(rt)
    self.t.title("Tkeditor %d" % len(tl))
    self.bar = Menu(rt)

# меню работы с файлами
    self.filem = Menu(self.bar)
    self.filem.add_command(label="Open...",\
      command=self.openfile)
    self.filem.add_command(label="New...",\
      command=neweditor)
    self.filem.add_command(label="Save as...",\
      command=self.savefileas)
    self.filem.add_command(label="Close",\
      command=self.close)
    self.filem.add_separator()
    self.filem.add_command(label="Exit", command=die)

# меню редактирования текста
    self.editm = Menu(self.bar)
    self.editm.add_command(label="Del...")
    self.editm.add_command(label="Cut...")
    self.editm.add_command(label="Сopy...")
    self.editm.add_command(label="Paste...")

# меню о программе
    self.helpm = Menu(self.bar)
    self.helpm.add_command(label="About", command=about)
    
    self.bar.add_cascade(label="File", menu=self.filem)
    self.bar.add_cascade(label="Edit", menu=self.editm)
    self.bar.add_cascade(label="Help", menu=self.helpm)
    self.t.config(menu=self.bar)

    self.f = Frame(self.t,width=512)
    self.f.pack(expand=1, fill=BOTH)

    self.st = ScrolledText(self.f,background="white")
    self.st.pack(side=LEFT, fill=BOTH, expand=1)

# функция закрытия
  def close(self):
    self.t.destroy()

# функция открытия файла
  def openfile(self):
    pl=END
    oname = askopenfilename()
    if oname:
      for line in fileinput.input(oname):
        self.st.insert(pl,line)
        self.t.title(oname)

# функция удаления фрагмента 
    
# функция cut фрагмента

# функция paste фрагмента

# функция copy фрагмента

# функция сохранить как...
  def savefileas(self):
    sname=asksaveasfilename(filetypes=[("Text",\
      "*.txt")])
    if sname:
      ofp=open(sname,"w")
      ofp.write(self.st.get(1.0,END))
      ofp.flush()
      ofp.close()
      self.t.title(sname)

if __name__=="__main__":
  root=None
  tl.append(editor(root))
  root=tl[0].t
  root.mainloop()


Подскажите, пожалуйста, может что-нибудь не правильно делаю. Просто знакомые договорились на крайний срок сдачи - четверг этой недели, а я все не могу никак разобраться (времени катострофически не хватает (((). Очень не хотелось бы их подводить (светит отчисление).

Заранее благодарен.


Это сообщение отредактировал(а) setq - 16.5.2007, 09:49
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.