Название: ui textedit Отправлено: hoja от Ноябрь 07, 2010, 22:35 недавно перешол на убунту. пытаюсь разобраться в qt 4. до этого винда и сибилдер
столкнулся с проблемой. искал тут на форуме и еще на нескольких форумах. в бланшете и других книгах. но так и не понял как правильно обращатся к виджетам в форме использую qt creator в нем создаю форму с виджетом textEdit хочу прочитать файл и загрузить в этот виджет Код: int main(int argc, char *argv[]) error: ‘ui’ was not declared in this scope вставил в main Ui::converter ui; Код: int main(int argc, char *argv[]) error: base operand of ‘->’ has non-pointer type ‘Ui::converter’ если поставить не ui->textEdit->setPlainText(QString::fromUtf8(file.readAll())); а ui.textEdit->setPlainText(QString::fromUtf8(file.readAll())); то ошибку не выдает но программа завершается с ошибкой Программа неожиданно завершилась. test завершился с кодом 0 при отладке на этой строке выдает - приложение остановлено так как получило сигнал от операционной системы. Сигнал SIGSEGV мы сами люди не местные поможите кто чем может))) Название: Re: ui textedit Отправлено: UVV от Ноябрь 08, 2010, 08:19 Ui не надо использовать в main.
И что такое converter? Название: Re: ui textedit Отправлено: Пантер от Ноябрь 08, 2010, 08:21 Плохо читал.
Код Перенеси в конструктор converter и будет тебе счастье. Название: Re: ui textedit Отправлено: hoja от Ноябрь 09, 2010, 01:12 Ui не надо использовать в main. И что такое converter? так форма называется Название: Re: ui textedit Отправлено: hoja от Ноябрь 09, 2010, 01:17 Плохо читал. Код Перенеси в конструктор converter и будет тебе счастье. т.е. убрать из main и вставить в Код: converter::converter(QWidget *parent) : так? если не так просто можешь простейший проект(работающий) для считывания файла и вставку его содержимого в текстовое поле показать? тяжко после билдера)) но интересно. а потмоу хочется разобраться Название: Re: ui textedit Отправлено: hoja от Ноябрь 09, 2010, 01:47 и еще вопрос
QString::fromUtf8(file.readAll()) чем можно заменить если читаемые файлы - в виндовой кодировке. пробовал QTextCodec *codec = QTextCodec::codecForName("Windows-1251"); QTextCodec::setCodecForTr(codec); но как было кракозябрами так и осталось типа Êðóïíî íàðåçàííûå ãðèáû Название: Re: ui textedit Отправлено: Пантер от Ноябрь 09, 2010, 10:13 Читай про QTextStream, а конкретно про void QTextStream::setCodec ( QTextCodec * codec )
Название: Re: ui textedit Отправлено: hoja от Ноябрь 09, 2010, 17:16 так читал в хелпе
там Apple Roman Big5 Big5-HKSCS CP949 EUC-JP EUC-KR GB18030-0 IBM 850 IBM 866 IBM 874 ISO 2022-JP ISO 8859-1 to 10 ISO 8859-13 to 16 Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml JIS X 0201 JIS X 0208 KOI8-R KOI8-U MuleLao-1 ROMAN8 Shift-JIS TIS-620 TSCII UTF-8 UTF-16 UTF-16BE UTF-16LE UTF-32 UTF-32BE UTF-32LE Windows-1250 to 1258 WINSAMI2 что не подставлял. все равно кракозябры Название: Re: ui textedit Отправлено: Пантер от Ноябрь 09, 2010, 17:21 1. Файл в какой кодировке?
2. Приведи код с использованием QTextStream. Название: Re: ui textedit Отправлено: crossly от Ноябрь 09, 2010, 17:46 Цитировать пробовал QTextCodec *codec = QTextCodec::codecForName("Windows-1251"); QTextCodec::setCodecForTr(codec); вы либо не внимательно читали ассистент либо это тупо копи/паст.... прочитайте что такое tr().... он тут совершенно не причем.... и лучше последуйте совету Пантера и разберитесь с QTextStream Название: Re: ui textedit Отправлено: hoja от Ноябрь 10, 2010, 05:51 файлы в виндусовой кодировке. созданы блокнотом в винде
код вот Код: QTextCodec *codec = QTextCodec::codecForName("Windows-1251"); в поле возникает то что я показал. кракозябры т.е. я фактически считываю файл (в виндусовой кодировке) и хочу отобразить его содержимое в текстовом поле в форме просто файлов около 3500. руками их открывать долго. gedit окрывает их нормально Название: Re: ui textedit Отправлено: Пантер от Ноябрь 10, 2010, 08:18 Еще раз повторю: используй QTextStream и ему устанавливай кодировку. А QTextCodec::setCodecForTr(codec); тут совершенно не при чем.
Название: Re: ui textedit Отправлено: hoja от Ноябрь 10, 2010, 08:50 причем причем
Код: QTextCodec *codec = QTextCodec::codecForName("CP1251"); всем спасибо за советы. вопросы решены)) эти. думаю еще не раз будут другие Название: Re: ui textedit Отправлено: Пантер от Ноябрь 10, 2010, 09:56 Ты, конечно, извини, но пишешь всякую ересь. Так тяжело было в ассистенте почитать?
Код
Название: Re: ui textedit Отправлено: hoja от Ноябрь 10, 2010, 09:59 может и ересь но мой вариант работает тоже)
Название: Re: ui textedit Отправлено: Пантер от Ноябрь 10, 2010, 10:05 *WALL*
Даже сказать культурного нечего. Промолчу. Название: Re: ui textedit Отправлено: Sahab от Ноябрь 10, 2010, 10:38 на костер еретика) ;D
Название: Re: ui textedit Отправлено: hoja от Ноябрь 10, 2010, 17:11 |