2009-10-08 2 views
4

У меня есть следующая проблема. Я пытаюсь интегрировать большой код, написанный мной с Qt-интерфейсом.Как использовать std :: string в QLineEdit?

Некоторые из моих функций возвращают std::string. Мне не удалось сделать QLineEdit::setText принять их (другие функции, возвращаемые char, не дают мне проблем).

Что мне делать? Благодаря!
Джузеппе

ответ

8

Попробуйте это:

std::string a = "aaa"; 
lineEdit->setText(QString::fromStdString(a)); 

Вам понадобится Qt с поддержкой STL.

+0

Отлично! Попробуй сейчас. – Giuseppe

+0

СПАСИБО !!! ЭТО СРАБОТАЛО!! Ты волшебник^__^ – Giuseppe

+0

Добро пожаловать :-) – rpg

1

Там нет конструктора QString, что занимает std::string. Сначала преобразуйте его в строку C, используя std::string::c_str().

+0

Ужасно, я надеялся найти что-то лучшее. Я научился в книгах Мейера использовать строку вместо char всякий раз, когда это возможно: как возможно, QT не обрабатывает строки правильно? – Giuseppe

+0

@ Giuseppe: Qt имеет свой собственный QTL и собственный класс строк. Большинство контейнеров Qt и QString могут быть преобразованы из/в их STL-копии, если ваша версия Qt была скомпилирована в режиме совместимости STL. AFAIK этот режим по умолчанию. – rpg

+0

Они ожидают, что вы будете использовать 'QString'. Я бы посмотрел на ответ rpg, выглядит лучше, чем у меня. Другой возможностью является, конечно, взломать код Qt, который должен составлять 10 минут. –

Смежные вопросы