Название: Проблема с переопределением типов Отправлено: Alikus от Октябрь 28, 2004, 17:24 Помогите пожалуйста! Сегодня на работе потратил кучу времени и так не добился результата!
Вот пример кода: Код: QString z = LineEdit->text(); Вопрос! :?: Почему переменная а пустая? Когда я делаю: Код: sprintf(st, "SELECT * FROM MYTABLE WHERE NAME ='%s'", a); то в st ничего не изменяется. Или вообще последний апостров пропадает неизвестно куда... И еще! :?: Как переопределить тип из QString в const char* ? Я знаю что из const char* в QString можно, но вот как наоборот? Мне кажется именно в этом проблема, а может и нет... PS Ламерский вопрос, но так замучил подонок :roll: Название: Проблема с переопределением типов Отправлено: Sergeich от Октябрь 28, 2004, 18:29 Проверил на 3 платформах : Linux ASP9, Windows XP Pro и Solaris8
везде работает Код:
Цитировать Как переопределить тип из QString в const char* См. QString::operator const char * () const Название: Проблема с переопределением типов Отправлено: lepsai от Октябрь 28, 2004, 23:43 или так:
QString someString("ho"); const char * a = someString.latin1(); Название: Проблема с переопределением типов Отправлено: Anonymous от Октябрь 30, 2004, 13:58 Цитата: "Sergeich" Проверил на 3 платформах : Linux ASP9, Windows XP Pro и Solaris8 везде работает Код:
Цитировать Как переопределить тип из QString в const char* См. QString::operator const char * () const Когда делаешь Код: s = "HELLO!!!"; У меня появилось смутное чувство, что эта фигня зависит из-за моей платформы. Что это за платформа сказать я не могу, в силу того , что в этом заинтересовано наше Министерство обороны :roll: [/b] Название: Проблема с переопределением типов Отправлено: Alikus от Октябрь 30, 2004, 14:07 Тьфу ты плин ... забыл залогиниться :D
А вот на счет Цитировать См. QString::operator const char * () const надо попробовать... Скажу по крайней мере в понедельник. :wink:Название: Re: Проблема с переопределением типов Отправлено: rjaan от Ноябрь 03, 2004, 10:44 Цитата: "Alikus" Код: QString z = LineEdit->text(); Вопрос! :?: Почему переменная а пустая? Когда я делаю: Код: sprintf(st, "SELECT * FROM MYTABLE WHERE NAME ='%s'", a); то в st ничего не изменяется. Или вообще последний апостров пропадает неизвестно куда... Код верный, но когда приводишь тип QString к const char*, то необходимо QString -> const char*. Код: QString z = LineEdit->text(); Попробуй так, как в коде должно сработать Код: sprintf(st, "SELECT * FROM MYTABLE WHERE NAME =\'%s\'", a); Название: Проблема с переопределением типов Отправлено: fazil6 от Ноябрь 03, 2004, 12:28 у тебя код в принципе неправильный.
Код:
]константу[/b надо инициализировать при объявлении Код:
Название: Проблема с переопределением типов Отправлено: Alikus от Ноябрь 03, 2004, 13:24 НИфига подобного.... :lol: Хотя может это зависит от моей платформы.... 8) не знаю...
Но в любом случае я уже разобрался... Все оказывается не так как я думал. И оказывается :!: привидение типов тут совсем не причем. Это уже совсем другая тема. Всем большое спасибо! PS Вопрос для fazil6 rjaan: :?: А если если в LineEdit запихнуть русское словечко, то у вас все нормально? Название: Проблема с переопределением типов Отправлено: fazil6 от Ноябрь 03, 2004, 14:28 Код: А если если в LineEdit запихнуть русское словечко, ради русского слова я и присваиваю то, что fromLocal8Bit( LineEdit->text(), -1) возвращает, а не LineEdit->text() Название: Проблема с переопределением типов Отправлено: rjaan от Ноябрь 04, 2004, 18:50 Цитировать Вопрос для fazil6 rjaan: :?: А если если в LineEdit запихнуть русское словечко, то у вас все нормально? Код:
Функция notr - Возвращает строку уникода, декодированную из первых len байт utf8. Русский текст надо пропускать через notr На пример Код:
То же самое и для QLineEdit Название: Проблема с переопределением типов Отправлено: Alikus от Ноябрь 10, 2004, 23:26 А луче сего подключить "KOI8-R"и делов то :P
Название: Проблема с переопределением типов Отправлено: Фёдор от Июнь 25, 2006, 23:44 Сразу говорю я новичок в этом деле.
Вопрос про lineEdit. Необходимо из одного такого поля сдублировать слова в другое такое же поле. Я пишу в одном поле что-то по-русски, нажимаю на кнопку, а во втором поле у меня вместо русского ????? стоят. Код похож на то, что тут было упомянуто. const QString notr ( const char* stri ) { return QString :: fromLocal8Bit (stri ); } .................................................. const char* str=teleLineEdit->text(); placeLineEdit->setText(notr(str)); До этого писал просто const *char string=teleLineEdit->text(); placeLineEdit->setText(string); Менял locale на koi8-r на utf-8 не помогло. сижу под linuxMandrake 10.1 в qt3. расскажите что здесь может быть не так. И помогите пожалуйста исправить. добавлено спустя 8 минут: Пробовал в качестве другой нужды этот string записаь обычным fprintf в файл обычный текстовый, также получается ?????. Если вводить русские слова в поле lineEdit путём setText("привет Петя") получается белиберда в поле, но если потом сделать const *char string=teleLineEdit->text() и записать этот стринг в файл то там получается привет Петя. Но дело в том что мне нужна динамическая работа, вводить текст в поле и записывать его из этого поля в текстовый файл. И чтобы и там и там это можно было прочитать по-русски. Подскажите кто что сможет и по этому поводу. Название: Проблема с переопределением типов Отправлено: Sergeich от Июнь 26, 2006, 00:19 А че просто написать нельзя?
Код: QString str=teleLineEdit->text(); Название: Проблема с переопределением типов Отправлено: Фёдор от Июнь 26, 2006, 15:04 Мне казалось я пробовал это.
Но щас написал и всё получилось. Спасибо тебе!:) Название: Уже вне сабжа но все же :) Отправлено: Alikus от Июнь 26, 2006, 22:28 Цитата: "Фёдор" Мне казалось я пробовал это. Но щас написал и всё получилось. Спасибо тебе!:) Я вообще делаю так :) Решил написать спустя год :D Код:
И вуаля :) В ЛайнЕдите русские символы. А при использованиии тескта в ЛайнЕдит нужно юзать так: Код: QString text = fromU(lineEdit->text()); ТЕхника провереная, но по хорошему надо вообщето использовать tr() :D |