URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3952
[ Назад ]

Исходное сообщение
"получение данных из TextEdit'a"

Отправлено ffoton , 13-Фев-05 09:58 
помогите, пожалуйста, не могу получить данные из TextEdit'a
пытаюсь так: QString get_str = textedit1 -> text();
в assistent'a не отсылать - я инглиш не понимаю
и еще вопрос: как сделать, чтоб после нажатия кнопки прога не вылетала после обработчика, а возвращала управление в вызвавшую функцию ?

прошу прощения за ламерские вопросы, но я не знаю, у кого спросить


Содержание

Сообщения в этом обсуждении
"получение данных из TextEdit'a"
Отправлено MaximKuznetsov , 13-Фев-05 11:54 
>помогите, пожалуйста, не могу получить данные из TextEdit'a
>пытаюсь так: QString get_str = textedit1 -> text();
>в assistent'a не отсылать - я инглиш не понимаю
>и еще вопрос: как сделать, чтоб после нажатия кнопки прога не вылетала
>после обработчика, а возвращала управление в вызвавшую функцию ?
>
>прошу прощения за ламерские вопросы, но я не знаю, у кого спросить
>
1) вообщем-то правильно всё делаешь, поэтому лучше показать код..
2) после обработчика управление возвращается в event loop Qt ( в цикл чтения сообщений/событий)
3) учи английский ;-) И порой на сайти по теме Qt - где-то пробегала ссылка на разные переводы


"получение данных из TextEdit'a"
Отправлено ffoton , 13-Фев-05 18:26 
>1) вообщем-то правильно всё делаешь, поэтому лучше показать код..
void form_name::save_text() {
    int tmp_file_des;
    QString tmp_data = textbox_01 -> text();
    tmp_file_des = open ("~tmp.file",O_RDWR|O_APPEND|O_CREAT,0644);
    write (tmp_file_des,tmp_data,strlen (tmp_data));
    close (tmp_file_des);
}

вот тут не действует :(

и, заодно уж, задам еще вопрос: хочу подконнектить свою программу к серверу, но не могу использовать функцию connect() из sys/socket.h, потому что в Qt уже есть такая функция. как можно исправить это?


"получение данных из TextEdit'a"
Отправлено MaximKuznetsov , 13-Фев-05 23:42 
>>1) вообщем-то правильно всё делаешь, поэтому лучше показать код..
>void form_name::save_text() {
>    int tmp_file_des;
>    QString tmp_data = textbox_01 -> text();
>    tmp_file_des = open ("~tmp.file",O_RDWR|O_APPEND|O_CREAT,0644);
>    write (tmp_file_des,tmp_data,strlen (tmp_data));
>    close (tmp_file_des);
>}
>
>вот тут не действует :(
>
>и, заодно уж, задам еще вопрос: хочу подконнектить свою программу к серверу,
>но не могу использовать функцию connect() из sys/socket.h, потому что в
>Qt уже есть такая функция. как можно исправить это?

поосторожнее надо с QString - там ведь unicode ;-) и функция strlen
к нему не применима..
если уж очень надо получить доступ к вниутреннему буферу - то есть метод ascii();
то есть в твоём примере - надо
   char *tmp_data = textbox_01 -> text().ascii();
но и это не совсем правильно, правильнее, если используешь библиотеку, то использовать её инструментарий для работы с файлами; и код будет более переносим и проблем будет поменьше..
где-то примерно так :
  QFile file("~tmp.file");
  file.open(IO_WriteOnly);
  QTextStream stream(&file);
  stream<<textbox_01 -> text();

а что вместо connect ::connect не катит ?
(кстати в Qt есть и сетевые классы - используй лучше их)