Поиск:

Ответ в темуСоздание новой темы Создание опроса
> qt события 
V
    Опции темы
revanatar
  Дата 11.5.2012, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Вот например у меня есть QlineEdit обьект и еще всякая всячина на форме, в lineEdit задан начальный текст. Вопрос а том, как сделать чтобы при любом изменении текста в нем, выполнялась моя функция, например при пустом lineEdit делать неактивными остальные элементы на форме?
PM MAIL   Вверх
alexvs11
Дата 11.5.2012, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 2
Всего: 10



revanatar, сигналы textChanged/textEdited в помощь
PM MAIL   Вверх
revanatar
Дата 11.5.2012, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



пробовал, не реагирует 
Код

connect(widget.lineEdit, SIGNAL(editingFinished()), SLOT(isEmpty_1));

где вместо editingFinished() перепробовал все что в принципе возможно для данной ситуации
PM MAIL   Вверх
alexvs11
Дата 11.5.2012, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


hell is here
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 21.8.2010

Репутация: 2
Всего: 10



revanatar, connect true возвращает?


Это сообщение отредактировал(а) alexvs11 - 11.5.2012, 22:12
PM MAIL   Вверх
revanatar
Дата 11.5.2012, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Вот так проверил, вывело 0
Код

if(connect(widget.lineEdit, SIGNAL(editingFinished()), SLOT(isEmpty_1)) == true)
    {widget.textBrowser->insertPlainText("1");}
    else
        {widget.textBrowser->insertPlainText("0");}


Это сообщение отредактировал(а) revanatar - 11.5.2012, 22:46
PM MAIL   Вверх
revanatar
Дата 11.5.2012, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



в общем не соединяет почему-то
PM MAIL   Вверх
borisbn
Дата 12.5.2012, 06:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Что пишет в окне Output?
isEmpty_1 точно описана как слот?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
_GRIN_
Дата 12.5.2012, 08:16 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Цитата(revanatar @  11.5.2012,  19:54 Найти цитируемый пост)

пробовал, не реагирует 
Код

connect(widget.lineEdit, SIGNAL(editingFinished()), SLOT(isEmpty_1));

где вместо editingFinished() перепробовал все что в принципе возможно для данной ситуации


попробуй для isEmpty_1 добавить скобки 

Код

connect(widget.lineEdit, SIGNAL(editingFinished()), SLOT(isEmpty_1()));



--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
math64
Дата 12.5.2012, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Если используешь QtCreator, используй подсказки редактора (если подсказки не появляются сами, используешь Ctrl-Enter):
Вводишь con - в подсказке выбираешь connect
Подсказка 1 аргумента: sender - вводишь widget.lineEdit,
Подсказка 2 аргумента: singal - вводишь SIGNAL(
Подсказка сигнала - выбираешь сигнал из списка
Подсказка 3 аргумента:  receiver или member; в данном случае member - вводишь SLOT(
Подсказка слота - выбираешь слот из списка. Если слот ещё не объявлен, он в списке не появится, поэтому сначала объяви слот в заголовке.


PM   Вверх
revanatar
Дата 12.5.2012, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Цитата(borisbn @ 12.5.2012,  06:12)
Что пишет в окне Output?
isEmpty_1 точно описана как слот?

Код

class newForm : public QMainWindow{
    Q_OBJECT

public:
    newForm();
    virtual ~newForm();

private:
    Ui::newForm widget;

public slots:
    void geffe();
    void isEmpty_1();

};

в netbeans сижу.
PM MAIL   Вверх
borisbn
Дата 12.5.2012, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(borisbn @  12.5.2012,  06:12 Найти цитируемый пост)
Что пишет в окне Output?

так и не ответил
и потом, тебе _GRIN_ абсолютно точно указал на ошибку


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
revanatar
Дата 12.5.2012, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Цитата(_GRIN_ @ 12.5.2012,  08:16)
Цитата(revanatar @  11.5.2012,  19:54 Найти цитируемый пост)

пробовал, не реагирует 
Код

connect(widget.lineEdit, SIGNAL(editingFinished()), SLOT(isEmpty_1));

где вместо editingFinished() перепробовал все что в принципе возможно для данной ситуации


попробуй для isEmpty_1 добавить скобки 

Код

connect(widget.lineEdit, SIGNAL(editingFinished()), SLOT(isEmpty_1()));

Со скобками то же самое.
PM MAIL   Вверх
revanatar
Дата 12.5.2012, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Скобки потерялись после попыток сделать по-другому. Что за окно Output? Построил, выполнил?

Это сообщение отредактировал(а) revanatar - 12.5.2012, 12:09
PM MAIL   Вверх
borisbn
Дата 12.5.2012, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



revanatar, какая IDE ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
_GRIN_
Дата 12.5.2012, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



нужен лог выполнения кода, где ты коннект осущствляешь (если коннект динамически например происходит) - кьют напишет, почему коннект неудался (нет такого слота, или сигнала, или указатель на сендера нулевой) - короче нужно лог смотреть а не телепатией заниматься =)


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
revanatar
  Дата 14.5.2012, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Писал же: netbeans.
Думал в эклипс перебраться - так там темный лес с настройками.
PM MAIL   Вверх
borisbn
Дата 14.5.2012, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(revanatar @  14.5.2012,  14:00 Найти цитируемый пост)
Писал же: netbeans.

а, да. только сейчас заметил
Цитата(revanatar @  12.5.2012,  12:08 Найти цитируемый пост)
Что за окно Output? 

В netbeans не знаю. В QtCreator оно называется "Вывод приложения", в студии - "Output"... поищи что-нибудь похожее в твоей IDE.
Дело в том, что при возникновении каких-либо проблем в рантайме Qt пишет туда довольно подробное сообщение с описанием проблемы.



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
revanatar
  Дата 14.5.2012, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Для джавы там только есть (
PM MAIL   Вверх
borisbn
Дата 14.5.2012, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



тогда попробуй запустить своё приложение просто из консоли (в windows - cmd.exe, в linux - думаю объяснять не нужно)))
по идее кутя напишет проблему прямо в консоли 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 14.5.2012, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Цитата(borisbn @  14.5.2012,  16:08 Найти цитируемый пост)
по идее кутя напишет проблему прямо в консоли  

в windows это не работает
PM   Вверх
_GRIN_
Дата 14.5.2012, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Код

<path_to_prog>\myprog.exe > output.txt

насколько я помню работает и в винде.
Ну а сюда выложи текст из   output.txt - тогда можно будет дальше думать.

Это сообщение отредактировал(а) _GRIN_ - 14.5.2012, 23:27


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
revanatar
Дата 15.5.2012, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Видимо не работает, просто прога открылась, output.txt пустой. 
Конечно, такие танцы с бубном не тема, надо на родную ide переходить smile
Хз когда эклипсоделы и/или нетбинсофилы сделают норм интеграцию.
PM MAIL   Вверх
math64
Дата 15.5.2012, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



В Windows нужно скачать DebugView.zip с microsoft.com
PM   Вверх
borisbn
Дата 15.5.2012, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(math64 @  15.5.2012,  08:02 Найти цитируемый пост)
В Windows нужно скачать DebugView.zip с microsoft.com 

хммм... точно. как-то сразу не дошло. он у меня есть. лови в аттаче

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  DebugView.zip 285,57 Kb


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
revanatar
Дата 15.5.2012, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Код

[2252] Object::connect: No such signal QLineEdit::textChanged() 


Сигнал принимает в себя qstring оказывается. Вот только не знаю что передать туда, нужен же конкретный результат.
PM MAIL   Вверх
_GRIN_
Дата 15.5.2012, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



revanatar,  сначала ты писал:

Цитата(revanatar @  11.5.2012,  19:54 Найти цитируемый пост)
пробовал, не реагирует 
connect(widget.lineEdit, SIGNAL(editingFinished()), SLOT(isEmpty_1));


Цитата(revanatar @  12.5.2012,  10:08 Найти цитируемый пост)

Скобки потерялись после попыток сделать по-другому.


лог выводит, что ты коннектишь сигнал с другой сигнатуров (с параметром QString):

Цитата(revanatar @  15.5.2012,  16:45 Найти цитируемый пост)

Код

[2252] Object::connect: No such signal QLineEdit::textChanged() 

Сигнал принимает в себя qstring оказывается. Вот только не знаю что передать туда, нужен же конкретный результат.
 


ты выложи тот код, который ты запускаешь =) - а то совсем нас запутал.

P.S. сигнатура сигнала и слота при коннекте должна указываться - а у тебя сигнал указан с неправильной сигнатурой, вот кьют сигнал и не нашёл.

Это сообщение отредактировал(а) _GRIN_ - 15.5.2012, 23:02


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
revanatar
Дата 16.5.2012, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Код

newForm::newForm() {
    widget.setupUi(this);

    connect(widget.pushButton, SIGNAL(clicked()), SLOT(geffe()));


    if(connect(widget.lineEdit, SIGNAL(textChanged()), SLOT(isEmpty_1())))
        {widget.textBrowser->insertPlainText("1");}
    else
        {widget.textBrowser->insertPlainText("0");}
}

newForm::~newForm() {

}

void newForm::isEmpty_1()
{
    if(widget.lineEdit->text().size() == 0)
        {
        widget.lineEdit_2->setEnabled(0);
        widget.pushButton->setEnabled(0);
        }
    else
        {
        widget.lineEdit_2->setEnabled(1);
        widget.pushButton->setEnabled(1);
        }
}

PM MAIL   Вверх
borisbn
Дата 16.5.2012, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(revanatar @  15.5.2012,  18:45 Найти цитируемый пост)
 No such signal QLineEdit::textChanged() 

значит "нет такого сигнала QLineEdit::textChanged()". Есть только такой 
QLineEdit::textChanged( const QString & text )
вот и нужно коннектить
Код
 if(connect(widget.lineEdit, SIGNAL(textChanged(const QString &)), SLOT(isEmpty_1(const QString &))))

а isEmpty_1() описать так
Код
void newForm::isEmpty_1( const QString & )




--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
revanatar
Дата 16.5.2012, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Цитата
void newForm::isEmpty_1( const QString & )

Почему так? В смысле зачем туда const QString & ?
PM MAIL   Вверх
borisbn
Дата 16.5.2012, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Цитата(revanatar @  16.5.2012,  16:56 Найти цитируемый пост)
зачем туда const QString &

затем, что сигнал, на который ты законнекчиваешь этот слот передаёт строку...
хотя... можешь попробовать
Код
connect(widget.lineEdit, SIGNAL(textChanged(const QString &)), SLOT(isEmpty_1())))

а isEmpty_1() оставить без изменений. я, просто, не помню в сигнале или в слоте может быть больше аргументов, но сигнатура в connect точно должна совпадать с описанием


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
revanatar
Дата 16.5.2012, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



isEmpty_1()  - работает
Вопрос не по теме: каким макаром и куда можно БЫСТРО выводить текст на форму посимвольно. Такие вещи как insertPlainText("") и аналогичные начинают тормозить программу, если обращаться к ним в цикле.
PM MAIL   Вверх
_GRIN_
Дата 16.5.2012, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


одинокий падаван
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 18.11.2007
Где: Калуга

Репутация: 6
Всего: 7



Цитата(revanatar @  16.5.2012,  14:56 Найти цитируемый пост)
Почему так? В смысле зачем туда const QString & ? 

Потому что сигналы-слоты - это по сути обвязка над "указателями на функции", которая разруливается moc-препроцессором.
Читай про механиз сигналов-слотов тут: http://qt-project.org/doc/qt-4.8/signalsandslots.html

Цитата(borisbn @  16.5.2012,  14:37 Найти цитируемый пост)

а isEmpty_1() описать так
void newForm::isEmpty_1( const QString & )

как показывает практика - к слоту без параметров свободно коннектятся сигналы с любыми параметрами (и любым их количеством).





Это сообщение отредактировал(а) _GRIN_ - 17.5.2012, 08:12


--------------------
Дорогу осилит идущий
PM MAIL Skype   Вверх
Sality123
Дата 17.5.2012, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 10.3.2011

Репутация: нет
Всего: нет



Цитата(revanatar @ 16.5.2012,  17:04)

Вопрос не по теме: каким макаром и куда можно БЫСТРО выводить текст на форму посимвольно. Такие вещи как insertPlainText("") и аналогичные начинают тормозить программу, если обращаться к ним в цикле.

Ну можно 
1) доставать данные ui->plineText->text()
2) прибавляем символ string.append("d")
3) пихаем результат опять в плайнтекст  ui->plineText->setText(string)


непомню точно, может есть функция проще у плайнтекста типо ui->plineText->append("s")

Ах да, любой цикл будет тормозить программу, если он долго обрабатывает команды. Не думаю что insertPlainText("") настолько тугой. Скорее всего в твоем цикле либо очень много  задач что он неуспевает их отработать быстро без видимого зависания програмы.

Это сообщение отредактировал(а) Sality123 - 17.5.2012, 14:25
PM MAIL   Вверх
bsa
Дата 17.5.2012, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Цитата(revanatar @  16.5.2012,  18:04 Найти цитируемый пост)
Вопрос не по теме: каким макаром и куда можно БЫСТРО выводить текст на форму посимвольно. Такие вещи как insertPlainText("") и аналогичные начинают тормозить программу, если обращаться к ним в цикле. 

смотри, если ты откуда-то читаешь посимвольно, и тут же каждый символ пихаешь в виджет, то будет тормозить. Так как производится еще обработка текста и куча дополнительных операций. Лучше добавлять каждый символ во временную текстовую переменную, а когда все символы будут обработаны, то ее содержимое добавить к тексту виджета. Это значительно ускорит работу программы.
PM   Вверх
revanatar
Дата 17.5.2012, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Цитата(bsa @ 17.5.2012,  15:24)
Цитата(revanatar @  16.5.2012,  18:04 Найти цитируемый пост)
Вопрос не по теме: каким макаром и куда можно БЫСТРО выводить текст на форму посимвольно. Такие вещи как insertPlainText("") и аналогичные начинают тормозить программу, если обращаться к ним в цикле. 

смотри, если ты откуда-то читаешь посимвольно, и тут же каждый символ пихаешь в виджет, то будет тормозить. Так как производится еще обработка текста и куча дополнительных операций. Лучше добавлять каждый символ во временную текстовую переменную, а когда все символы будут обработаны, то ее содержимое добавить к тексту виджета. Это значительно ускорит работу программы.

Да, ускорит, но у меня случай  когда я не знаю длинны текста, и зачастую он большой, максимальное количество символов спокойно может переполнить uint. Я так понимаю что ничего быстрей нету? Тогда выводить в файл только остается.
PM MAIL   Вверх
math64
Дата 18.5.2012, 07:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Делай ограничения по числу символов (например, после накопления 80 символов буфер выводится на экран), времени (по прошествии 5 сек буфер выводится на экран), терминальных символов (при получении перевода строки буфер выводится на экран).
PM   Вверх
revanatar
Дата 18.5.2012, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Цитата(math64 @ 18.5.2012,  07:15)
Делай ограничения по числу символов (например, после накопления 80 символов буфер выводится на экран), времени (по прошествии 5 сек буфер выводится на экран), терминальных символов (при получении перевода строки буфер выводится на экран).

Да просто нету гарантий что текст "влезет".
PM MAIL   Вверх
math64
Дата 18.5.2012, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Цитата(revanatar @  18.5.2012,  11:23 Найти цитируемый пост)
Да просто нету гарантий что текст "влезет". 

Ну, если размер текста не влезает с оперативку - обычный текстовый редактор не пойдёт.
Возможно, удобнее складывать не в простой файл, а в базу данных, а выводить в QLisTView с QSqlTableModel (хотя возможно, придётся свою модель написать).
Но для записив БД придётся точно также делить на куски.
PM   Вверх
revanatar
Дата 18.5.2012, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Цитата(math64 @ 18.5.2012,  16:55)
Цитата(revanatar @  18.5.2012,  11:23 Найти цитируемый пост)
Да просто нету гарантий что текст "влезет". 

Ну, если размер текста не влезает с оперативку - обычный текстовый редактор не пойдёт.
Возможно, удобнее складывать не в простой файл, а в базу данных, а выводить в QLisTView с QSqlTableModel (хотя возможно, придётся свою модель написать).
Но для записив БД придётся точно также делить на куски.

Не в оперативке дело, а например в textBrowser, длинна текста которого возвращается в int.
PM MAIL   Вверх
bsa
Дата 18.5.2012, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



revanatar, ну и? Тебе указанный инструментарий в принципе не подходит (если честно, подобное количество текста в принципе человеком сложно воспринимается). Или меняй задачу или ищи другой инструментарий.
PM   Вверх
math64
Дата 18.5.2012, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Цитата(revanatar @  18.5.2012,  18:00 Найти цитируемый пост)
Не в оперативке дело, а например в textBrowser, длинна текста которого возвращается в int. 

int - 32 разрядное число. Если длина в него не влезает, массив, как правило, не влезет в оперативку. Если это не 64-разрядный компьютер с не менее чем 4GB памяти, причём операционка такую память  может предоставить приложению пользователя.
PM   Вверх
revanatar
  Дата 19.5.2012, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 8.11.2011

Репутация: нет
Всего: нет



Цитата(math64 @ 18.5.2012,  22:54)
Цитата(revanatar @  18.5.2012,  18:00 Найти цитируемый пост)
Не в оперативке дело, а например в textBrowser, длинна текста которого возвращается в int. 

int - 32 разрядное число. Если длина в него не влезает, массив, как правило, не влезет в оперативку. Если это не 64-разрядный компьютер с не менее чем 4GB памяти, причём операционка такую память  может предоставить приложению пользователя.

А, я забыл что int меняет свой размер smile , извиняюсь, все влезет.
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0845 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.