wxT() и wx2.9 Topic is solved

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

wxT() и wx2.9

Post by borr_1 » Tue Aug 28, 2012 1:10 pm

Читаю док
Note that since wxWidgets 2.9.0 you shouldn't use wxT() anymore in your program sources (it was previously required if you wanted to support Unicode
Пробую

Code: Select all

textCtrl1->SetValue("Проба")
Запуская программу вижу кракозяблы (исходники в UTF-8 CodeLite). Если обернуть в wxT() все снова становится нормальным wx2.9.4

Что я делаю не так? Или я перевел что-то неправильно?
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

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: wxT() и wx2.9

Post by Mojo » Tue Aug 28, 2012 4:39 pm

borr_1 wrote:Читаю док
Note that since wxWidgets 2.9.0 you shouldn't use wxT() anymore in your program sources (it was previously required if you wanted to support Unicode
Пробую

Code: Select all

textCtrl1->SetValue("Проба")
Запуская программу вижу кракозяблы (исходники в UTF-8 CodeLite). Если обернуть в wxT() все снова становится нормальным wx2.9.4

Что я делаю не так? Или я перевел что-то неправильно?
Скорее всего не правильно подключил 2.9 я сейчас в CodeBlocks настроил 2.9.3 (Xubuntu 12.04) все отлично работает без wxT(). Хотя сначала тоже корячился....
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

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: wxT() и wx2.9

Post by Mojo » Tue Aug 28, 2012 5:00 pm

Ща попробовал и в CodeLite 4.0.5589 тоже на Xubuntu 12.04 все отлично работает. Никаких wxT() или _T() не нужно.
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: wxT() и wx2.9

Post by SteelRat » Tue Aug 28, 2012 6:35 pm

Ещё вариант пересобрать отключив режим совместимости с 2.8 в setup.h
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: wxT() и wx2.9

Post by Mojo » Tue Aug 28, 2012 7:10 pm

SteelRat wrote:Ещё вариант пересобрать отключив режим совместимости с 2.8 в setup.h
Должно все по умолчанию нормально работать.... скорее всего это под виндой настройки нужно смотреть... в линуксе все проще.... я собирал по умолчанию нормально все работает, ток исполняемые файлы дольше компилируются и чуть тяжелее чем в 2.8
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Re: wxT() и wx2.9

Post by borr_1 » Wed Aug 29, 2012 5:05 am

SteelRat wrote:Ещё вариант пересобрать отключив режим совместимости с 2.8 в setup.h
Это при сборке какой параметр? В Ubuntu если у тебя там локаль UTF-8 оно конечно будет работать. А в Винде пробовал?
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

SteelRat
Experienced Solver
Experienced Solver
Posts: 50
Joined: Tue Sep 08, 2009 4:42 pm
Location: Russia, Obninsk

Re: wxT() и wx2.9

Post by SteelRat » Wed Aug 29, 2012 5:30 am

Конечно пробовал. Я только в винде и работаю, а в линуксе собираю лишь версию, соответственно, под линукс. Но Mojo прав, вряд ли в этом дело. И ещё, директива _UNICODE или wxUNICODE (не помню) может ещё требуется? У меня она есть.
А параметр такой:

Code: Select all

// Recommended setting: 0 (please update your code)
#define WXWIN_COMPATIBILITY_2_8 0
Win7/LinuxMint 17, VS2013/C::B, wxWidgets 3.0 x64

ImmortalDragon
Earned a small fee
Earned a small fee
Posts: 20
Joined: Fri Oct 15, 2010 6:55 pm

Re: wxT() и wx2.9

Post by ImmortalDragon » Wed Aug 29, 2012 5:57 am

Посмотри в какой кодировке у тебя исходник (файл cpp), который ты компилируешь. utf8 бывает нескольких видов

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Re: wxT() и wx2.9

Post by borr_1 » Wed Aug 29, 2012 6:28 am

пробовал с бом(enable localization - codeblock - ru) и без бом
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

Toshkarik
Earned a small fee
Earned a small fee
Posts: 18
Joined: Thu Oct 18, 2012 3:18 am
Location: Russia

Re: wxT() и wx2.9

Post by Toshkarik » Thu Oct 18, 2012 4:17 am

У меня русский текст в Win7 отображается только если явно приводить к wchar_t:

Code: Select all

textCtrl1->SetValue( L"Проба" );

borr_1
Super wx Problem Solver
Super wx Problem Solver
Posts: 362
Joined: Wed Mar 07, 2007 8:10 am
Location: Russia, Shakhty

Re: wxT() и wx2.9

Post by borr_1 » Thu Oct 18, 2012 9:44 am

о тож. похоже это я замечтался. так ничего и не вышло либо wxT либо L
WinXP SP3, wx-2.8.10, MinGW-4.4.1, gdb-7.1.2, eclipse

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: wxT() и wx2.9

Post by Mojo » Thu Aug 29, 2013 7:28 pm

wx2.9.5 под виндой все проблемы с wxT() решены. Теперь не нужно писать этот макрос для юникода, более того, вместо wxString теперь можно стандартный string из std использовать.
Win XP HE SP3, Vista
Xubuntu 12.04 LTS
wxWidgets-2.9.5
wxWidgets-3.0.0

Post Reply