Russian Qt Forum
Май 04, 2024, 01:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: char* из QChar*  (Прочитано 5550 раз)
oakhead
Гость
« : Декабрь 16, 2005, 09:38 »

Доброго времени суток!
Есть проблемка : в окошке запршиваются значения переменных host, user, database,passwrd. Все - типа QString*. Из всего этого формируется строка для вызова pgconnect(char *conninfo)
QString *qconn = "host="+host, etc.
Можно ли как-то из qconn получить значение типа char* ?
Записан
alexis
Гость
« Ответ #1 : Декабрь 16, 2005, 10:01 »

qconn->ascii()
Записан
Dendy
Гость
« Ответ #2 : Декабрь 16, 2005, 10:40 »

Никаких указателей на QString! Класс шаровьlй, данньlе скрьlтьl!

Qt3
Код:
char * ascii = str.ascii();


Qt4
Код:
QByteArray ascii = str.toAscii();

или
Код:
QByteArray ascii = str.toLocal8Bit();


А вообще - читать доку чё конкретно нужно.
Записан
Hellenna
Гость
« Ответ #3 : Декабрь 16, 2005, 11:15 »

всегда делаю так:
const char* string=str.local8Bit();
Записан
Dendy
Гость
« Ответ #4 : Декабрь 16, 2005, 12:27 »

Отвлечёмси... В Qt3 реализован плохой стиль работьl с ascii-строками. Получение ascii строки по указателю заставляет хранить её копию в QString навсегда. Согласен с разработчиками Qt4: QByteArray ascii = string.toAscii(); куда круче - екземпляр возвращается в шаровьlй класс с-строки, которьlй можна самостоятельно очистить или сохранить для своих целей не нагружая при етом QString.

P.S. Не вздумайте писать такое:

Код:
char * ascii = str.toAscii().data();
Записан
Вудруф
Гость
« Ответ #5 : Декабрь 16, 2005, 13:40 »

Ну можно ещё так:
std::string stdStr =  string.toStdString();
char *ptr = stdStr.c_str();


Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 20.