Validator русский и разочарование

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Post by borr_1 »

Nikolay wrote: Но я так и не понял это решение привязано к локали или нет? Если привязана, то его ценность сомнительна.. ценность конечно есть, но....
Если вы о локали вообще, то я не вижу таких решений, что можно было бы обойтись без нее - ну никак. А если конкретно о locale.h я полазил посмотрел у людей на код под Linux'ом они там его подключают setlocale используют насчет _wsetlocale - правда не видел но это еще не значит что его там нет все таки часть stl как никак - пока не попробуешь не узнаешь, а у нас с этим полный абзац :(
Nikolay
Experienced Solver
Experienced Solver
Posts: 72
Joined: Wed Oct 10, 2007 4:27 am

Post by Nikolay »

О локали вообще. Если у нас юникод - то должна быть возможность менять регистр без локали.

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

АПИ винды которые я использую преобразуют без установки локали.
Best regards, Nikolay
wxWidgets in russian
Small Notes Manager and Clipboard Manager with History written with wxWidgets
maximand
Experienced Solver
Experienced Solver
Posts: 79
Joined: Fri Nov 11, 2011 5:44 pm
Location: Russia

Re: Validator русский и разочарование

Post by maximand »

Народ, пора решить эту проблему, а то она тянется давно.
Проблема уверен зарыта где-то там где char код при нажатии клавиши выводится. Там стоит ограничение,что если код >= 256 то возвращать 0.
Тут то и проблема, видимо этот 0 воспринимается как true.
Поэтому в линуксе навигация в wxTreeCtrl по русским названиям не работает. Валидатор не ловит кириллицу. Копи/пасто по ctrl+c не работает в русской раскладке и т.д.

Щас поищу старые закладки, где я уже кое-что нарыл...
Вот отсюда IMHO ноги растут
http://forums.wxwidgets.org/viewtopic.p ... e+char+256

Проблема в том, что при нажатии клавиши, когда она не в латинской раскладке, то евента соответсвующего нет, поэтому валидатор и не ловит ничего.
Why 256???
M$, VS2017, C++
maximand
Experienced Solver
Experienced Solver
Posts: 79
Joined: Fri Nov 11, 2011 5:44 pm
Location: Russia

Re: Validator русский и разочарование

Post by maximand »

В дополнение к валидатору я приделал такую функцию
(Провереро под Windows wx-2.8.12)

Code: Select all

wxTextCtrl textAmount_->Connect( wxEVT_CHAR, wxKeyEventHandler(mmTransDialog::OnKeyDown), NULL, this);
...
void mmTransDialog::OnKeyDown(wxKeyEvent& event)
{
   int key_code = event.GetUnicodeKey();
   if (key_code > 57) return;
   event.Skip();
}
Теперь русские буковки не проходят. Не призываю использовать этот костыль, но надеюсь это поможет понять суть проблемы.
А под линуксом это вовсе не работает ибо при нажатии чего-то русского евента вовсе нет.
M$, VS2017, C++
Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Re: Validator русский и разочарование

Post by Mojo »

maximand wrote:Народ, пора решить эту проблему, а то она тянется давно.
......
Да, пора уже решить, а то мне скоро тоже понадобится wxTreeCtrl а судя по теме, будут у меня проблемы.
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
SteelRat
Experienced Solver
Experienced Solver
Posts: 50
Joined: Tue Sep 08, 2009 4:42 pm
Location: Russia, Obninsk

Re: Validator русский и разочарование

Post by SteelRat »

А в 2.9.х оно тоже есть?
Win7/LinuxMint 17, VS2013/C::B, wxWidgets 3.0 x64
Mojo
Super wx Problem Solver
Super wx Problem Solver
Posts: 401
Joined: Wed Sep 21, 2005 8:17 am
Location: Rostov-on-Don, Southern Russia

Re: Validator русский и разочарование

Post by Mojo »

SteelRat wrote:А в 2.9.х оно тоже есть?

Про 2.9 не знаю.... у меня 2.8.12 но в ней тоже не пробовал этот глюк, просто читаю эту ветку и так совпало, что скоро мне нужен будет wxTreeCtrl с русским текстом в дереве. Вот и размышляю...
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0
maximand
Experienced Solver
Experienced Solver
Posts: 79
Joined: Fri Nov 11, 2011 5:44 pm
Location: Russia

Re: Validator русский и разочарование

Post by maximand »

SteelRat wrote:А в 2.9.х оно тоже есть?
Всё те же глюки (под Linux по крайней мере)
M$, VS2017, C++
Post Reply