Найти - Пользователи
Полная версия: wxPython: Перевод строки в RichTextCtrl
Начало » GUI » wxPython: Перевод строки в RichTextCtrl
1
Vader
Есть желание использовать в приложении 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:
Vader
Проблема решена. Все дело в стиле wx.Panel - TAB_TRAVERSAL.
Vader
И снова проблема :(
Есть все тот же wx.richtext.RichTextCtrl. Нужно отловить момент выделения в нем текста. У этого контрола, вроде бы, есть событие EVT_RICHTEXT_SELECTION_CHANGED, но, судя по всему, оно не работает… ну или я чего-то не понимаю… Кто может подсказать решение?
magnet85
Чтобы правильно работала навигация в RichText (таб, интер, стрелки)нужно установить для его стиль wx.WANTS_CHARS
kelseyradley
Вы должны установить для стиля RichText wx.WANTS_CHARS, чтобы навигация в RichText работала правильно, например, в браузерах. 
bitlife 

timothyferriss
Чтобы разрешить перевод строки при нажатии клавиши Enter, вам нужно включить соответствующую обработку клавиш в вашем RichTextCtrl. Это можно сделать, добавив обработчик событий wx.EVT_KEY_DOWN, который будет перехватывать нажатия клавиш и обрабатывать их по вашему усмотрению.
retro bowl
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB