Уведомления

Группа в Telegram: @pythonsu

#1 Март 3, 2010 12:11:50

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

wxPython (выделить текст в TextCtrl)

Здравствуйте увожаемые.
Возникла у меня непонятка с TextCtrl. Проблема в единственной закомментированной строке метода OnConvert. Мне необходимо после добавления текста в right_text выделить его весь для дальнейшего помещения в буфер обмена. В доке по wxPython описан метод SetSelection который выделяет заданый диапазон текста, но он почемуто не работает. Интерпретатор ругается на параметр from. Что я делаю не так ?
Заранее всем спасибо.

# encoding: cp1251
import wx

class MyFrame(wx.Frame):

def __init__(self):
wx.Frame.__init__(self, None, -1, "Заголовок")
self.DoLayout()

def DoLayout(self):
self.panel = wx.Panel(self)
self.left_text = wx.TextCtrl(self.panel,-1,style=wx.TE_MULTILINE|wx.HSCROLL)
self.right_text = wx.TextCtrl(self.panel,-1,style=wx.TE_MULTILINE|wx.HSCROLL)
self.btn=wx.Button(self.panel,-1,label='->')
self.btn.Bind(wx.EVT_BUTTON,self.OnConvert)
#
self.grid1 = wx.FlexGridSizer(rows=1,cols=3)
self.grid1.AddGrowableCol(0,0)
self.grid1.AddGrowableCol(2,0)
self.grid1.AddGrowableRow(0,0)
self.grid1.Add(self.left_text,flag=wx.EXPAND|wx.ALIGN_CENTER)
self.grid1.Add(self.btn,flag= wx.ALIGN_CENTER)
self.grid1.Add(self.right_text,flag=wx.EXPAND|wx.ALIGN_RIGHT)
self.panel.SetSizer(self.grid1)
self.Layout()


def OnConvert(self, event) :
self.right_text.ChangeValue("какойто текст")
#self.right_text.SetSelection(from=1,to=5)


if __name__ == '__main__':
app = wx.PySimpleApp()
frame = MyFrame()
frame.Show()
app.MainLoop()
P.S.
У меня сложилось впечатление что в данном случае параметр from конфликтует с ключевым словом языка python, и что это ошибка в питоновской обертке для wxwidgets. Развейте или подтвердите мои сомнения.



Офлайн

#2 Март 3, 2010 13:28:18

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

wxPython (выделить текст в TextCtrl)

Решение найдено, можно просто написать:

self.right_text.SetSelection(0,3)
и все сработает =)
Вопрос по поводу конфликтов имен остается открытым, как быть если нужно явно указать параметр from (неуверен, но возможно такие случаи бывают) ?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version