Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 30, 2010 15:13:22

Vader
От:
Зарегистрирован: 2010-01-30
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython: Перевод строки в RichTextCtrl

Есть желание использовать в приложении RichTextCtrl, естественно, для того, чтобы каждый раз не лепить к нему тулбар, решил вынести все это на панель, которую потом будет легко добавлять на любую форму. Но столкнулся с проблемой - при размещении wx.richtext.RichTextCtrl на панели, у него перестает работать перевод строки, т.е. на Enter он не реагирует…
Вот код:

import wx
import wx.richtext as richtext

class RichTextEditor (wx.Panel):
def __init__ (self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)

self.rt = richtext.RichTextCtrl(self, wx.ID_ANY, style = richtext.RE_MULTILINE)

self.__do_layout()

def __do_layout (self):
sizer_main = wx.BoxSizer(wx.HORIZONTAL)
self.SetSizer(sizer_main)
sizer_main.Add(self.rt, 1, wx.EXPAND,0)

class TestFrame (wx.Frame):
def __init__ (self):
wx.Frame.__init__(self, None, wx.ID_ANY, "Application", size=(400, 300))
self.rte = RichTextEditor(self, wx.ID_ANY)

self.Show()

if __name__ == "__main__":
app = wx.App()
frame = TestFrame()
app.SetTopWindow(frame)
app.MainLoop()
Кстати, если в приведенном выше примере использовать wx.TextCtrl, то проблема не проявлятся.

Что я делаю не так? :rolleyes:



Офлайн

#2 Янв. 31, 2010 01:26:50

Vader
От:
Зарегистрирован: 2010-01-30
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython: Перевод строки в RichTextCtrl

Проблема решена. Все дело в стиле wx.Panel - TAB_TRAVERSAL.



Офлайн

#3 Фев. 4, 2010 11:43:40

Vader
От:
Зарегистрирован: 2010-01-30
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython: Перевод строки в RichTextCtrl

И снова проблема :(
Есть все тот же wx.richtext.RichTextCtrl. Нужно отловить момент выделения в нем текста. У этого контрола, вроде бы, есть событие EVT_RICHTEXT_SELECTION_CHANGED, но, судя по всему, оно не работает… ну или я чего-то не понимаю… Кто может подсказать решение?



Отредактировано (Фев. 4, 2010 12:40:09)

Офлайн

#4 Фев. 25, 2010 15:25:52

magnet85
От:
Зарегистрирован: 2009-04-13
Сообщения: 91
Репутация: +  2  -
Профиль   Отправить e-mail  

wxPython: Перевод строки в RichTextCtrl

Чтобы правильно работала навигация в RichText (таб, интер, стрелки)нужно установить для его стиль wx.WANTS_CHARS



Офлайн

#5 Фев. 28, 2024 08:51:07

kelseyradley
Зарегистрирован: 2023-08-29
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython: Перевод строки в RichTextCtrl

Вы должны установить для стиля RichText wx.WANTS_CHARS, чтобы навигация в RichText работала правильно, например, в браузерах. 
bitlife 

Офлайн

#6 Апрель 4, 2024 04:59:25

timothyferriss
Зарегистрирован: 2024-04-04
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython: Перевод строки в RichTextCtrl

Чтобы разрешить перевод строки при нажатии клавиши Enter, вам нужно включить соответствующую обработку клавиш в вашем RichTextCtrl. Это можно сделать, добавив обработчик событий wx.EVT_KEY_DOWN, который будет перехватывать нажатия клавиш и обрабатывать их по вашему усмотрению.
retro bowl

Отредактировано timothyferriss (Апрель 4, 2024 05:01:07)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version