wxWidgets — wxStyledTextCtrl — Выравнивание текста RTL

#c #wxwidgets #wxstyledtextctrl

#c #wxwidgets #wxstyledtextctrl

Вопрос:

wxStyledTextCtrl очень хорош, но не полностью документирован.. кто-нибудь знает, как выровнять текст по правому краю?

 // To create one
this->STYLED_TEXT = new wxStyledTextCtrl(PANEL, wxID_ANY, wxDefaultPosition, wxSize(500, 500));

// To set it RTL
STYLED_TEXT->SetLayoutDirection(wxLayout_RightToLeft);
  

Вопрос.. пожалуйста, как выровнять текст по правому краю?

Это не сработало!

 this->STYLED_TEXT = new wxStyledTextCtrl(PANEL, wxID_ANY, wxDefaultPosition, wxSize(500, 500), wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL | wxRIGHT);
  

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

Ответ №1:

Это невозможно сделать. wxStyledTextCtrl — это оболочка для текстового редактора Scintilla. Это действительно предназначено для написания на языках исходного кода, а не на естественных человеческих языках. Как они заявляют на своем сайте:

Scintilla должным образом не поддерживает языки справа налево, такие как арабский и иврит. Хотя текст на этих языках может выглядеть корректно, с этим текстом невозможно взаимодействовать, как обычно с другими компонентами редактирования.

Возможно, вместо этого мог бы работать wxRichTextCtrl.

Комментарии:

1. Спасибо, New Pagodi, да, они так говорят, они говорят о старой версии!, теперь wxWidgets 3.x включают последнюю версию wxscintilla и ее поддержку языков справа налево SetLayoutDirection(wxLayout_RightToLeft) , поэтому я ищу способ выровнять текст по правому краю, возможно, по StyleSetFont() , но я не знаю, как это сделать .. если нет, возможно, в следующей версии!

2. @Saif, ты пытался спросить на форуме Scintilla или ML?

3. после прочтения вашего комментария я публикую его в интересующей Google группе scintilla, спасибо

Ответ №2:

Наконец, я обнаружил, что Scintilla поддерживает образец RTL SetLayoutDirection (wxLayout_RightToLeft) , но таким языкам, как арабский / японский / иврит .. требуется ДВУНАПРАВЛЕННЫЙ ДИСПЛЕЙ для правильного отображения символов, а в Scintilla сейчас этой функции нет.

Итак .. эта функция запрошена для разработки в будущем, но не доказана прямо сейчас, LoL !.

https://sourceforge.net/p/scintilla/feature-requests/640/

https://groups.google.com/forum /#!тема/сцинтилла-интерес/IfLfG3Zj_nY/обсуждение