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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2]
16  Qt / Qt-инструментарий / QTCreator - неправильно собирает проект при изменении формы в дизайнере : Февраль 01, 2022, 13:08

Цитировать
QTCreator - неправильно собирает проект при изменении формы в дизайнере

добрый день

при редактировании формы в дизайнере (любое изменение, добавление/удаление компонентов/виджето) требует пересборки проекта с удалением сгенерированного ui_*.h-хедера (*)

если этого (*) не сделать, то изменения не будут "приняты"

кто как выкручивается?!

пытался добавить предварительный шаг в сборке, для удаления "мусора", но в переменных не нашел каталог проект (с файлами), точнее, вроде как есть подходящие переменные, но они не отрабатывает так как надо:
Код:
%{CurrentProject:Path} - самая подходящая

Код:
slackware 12.2
qt-4.8.7
qt-creator-3.1.2


17  Qt / Уроки и статьи / Правила создания виджетов в Qt: на стеке/динамически, родитель/ребенок/владелец : Февраль 01, 2022, 09:22
Цитировать
конспект: Правила создания виджетов в Qt: на стеке или динамически?
__URL__ТЫЦ__

В заметке рассмотрены "интересности" (особенности) размещения виджетов, в частности:
"Расстановка виджетов через менеджеры размещения"

но осталось не понятно, как "правильно" создавать/размещать "виджеты через менеджеры размещения", в разрезе "родитель/ребенок, владелец" и "создания/удаления/освобождения" рессурсов

спасибо
Код:
slackware 12.2
qt-4.7.4/4.8.7
18  Qt / Пользовательский интерфейс (GUI) / QSound::isFinished() - неоднозначность или так и должно быть?! : Февраль 01, 2022, 09:20
Цитировать
конспект:
Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010
Глава 27, Звук - стр. 443

Если вам вдруг потребуется узнать, было ли закончено проигрывание до конца
или оно было прервано, то можно вызвать метод
QSound::isFinished(),
кот. вернет true в том случае, если проигрывание было выполнено до конца,
или false, если оно было остановлено. Если же воспроизведение продолжается, то метод isFinished() () вернет значение false.
т.е.
Код:
QSound::isFinished() - возвращает
true  - проигрывание было выполнено до конца
false - проигрывание было остановлено
false - проигрывание продолжается

почему-бы не сделать как во "всех нормальных реализациях"? :о)

Код:
0 - проигрывание было выполнено до конца
1 - проигрывание было остановлено
2 - проигрывание продолжается
4 - blah-blah-balh

ну это так, мымсли вслух... :о)
19  Qt / Вопросы новичков / Использование форм в проектах, сравнение 3 и 4 способов, плюсы/минусы : Январь 30, 2022, 15:50
Цитировать
конспект:
Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010
Использование форм в проектах

формы, созданные в QtDesigner можно использовать 4-мя способами:
1. прямой способ
2. наследование
3. множественное наследование
4. динамическая загрузка ui-файла формы

интересует сравнение 3 и 4 способов, плюсы/минусы/подводные камни

Код:
slackware 12.2
qt-4.8.7

спасибо
20  Qt / Вопросы новичков / QtScripting : Январь 30, 2022, 15:49
Цитировать
конспект:
Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010
QtScripting

Реализация приложений с поддержкой языка сценариев делает возможным динамическое расширение вашего приложения и его изменение под конкретные требования без необходимости перекомпиляции.
Код:
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel lbl;
QScriptEngine scriptEngine;
QScriptValue  scriptLbl = scriptEngine.newQObject (&lbl) ;
scriptEngine.globalObject().setProperty("lbl", scriptLbl);
scriptEngine.evaluate("lbl.text = 'Hello, World!... FUCK'");
scriptEngine.evaluate("lbl.show()");

return app.exec();
}

при всем при этом, код-скриптинга пишется в теле *.cpp реализации, кот. сам по себе требует перекомпиляции.

что я понимаю не правильно?!

Код:
slackware 12.2
qt-4.8.7

спасибо
21  Qt / Вопросы новичков / Динамическая загрузка формы (ui-file) : Январь 30, 2022, 15:49
Цитировать
конспект:
Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010
Динамическая загрузка формы (ui-file)
Код:
QPushButton* pcmdReset = pwgtForm->findChild<QPushButton*>("m_cmdReset"); // ищем кнопку и коннектим

т.е. понятно, что это то, что "доктор прописал".
непонятно, почему нельзя было реализовать механизм "сквозного" обращения к "элементам"?
ведь проектируя форму мы задаем "осознанные" имена этим элементам, то, почему-бы просто не использовать эти имена для доступа?! а только вот таким "извратом" через поиск?!

Код:
slackware 12.2
qt-4.8.7

спасибо
22  Qt / Вопросы новичков / Процессы/потоки, реализация read-only : Январь 30, 2022, 15:48
Цитировать
конспект:
Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010
Процессы/потоки

Например, если один поток записывает информацию в файл,
то все другие не смогут использовать этот файл до тех пор, пока поток не освободит его.

как на счет реализации read-only?

Код:
slackware 12.2
qt-4.8.7

спасибо
23  Qt / Вопросы новичков / Процессы/потоки, Сигнально-слотовые соединения : Январь 30, 2022, 15:46
Цитировать
конспект:
Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010
Процессы/потоки

Сигнально-слотовые соединения

мы можем взять сигнал объекта одного потока и соединить его со слотом объекта другого потока.
соединение при помощи метода connect() предоставляет дополнительный параметр режима
обработки. Этот параметр по умолчанию имеет значение Qt::AutoConnection,
что соответствует автоматическому режиму. Как только происходит высылка
сигнала, Qt проверяет, происходит связь в одном и том же или в разных потоках.

Если это
- один и тот-же поток, то высылка сигнала приведет к прямому вызову метода.
- разные потоки, сигнал будет преобразован в событие и доставлен нужному объекту.

вы можете высылать сигналы и получать их, не заботясь о блокировке ресурсов.

Вы можете перемещать объект, созданный в одном потоке, в другой, обработка будет произведена "правильно"

не понятно, что значит:
- не заботясь о блокировке ресурсов (а если к ресурсу будет нужен множественный доступ? mutex- semaphore?)
- обработка будет произведена "правильно" (что значить правильно? а может быть еще и не правильно?)

Код:
slackware 12.2
qt-4.8.7

спасибо
24  Qt / Вопросы новичков / Процессы/потоки, сигналы-слоты -> событие : Январь 30, 2022, 15:45
Цитировать
конспект:
Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010
Процессы/потоки

Если сигнально-слотовое соединение осуществляется между объектами
разных потоков, то внутри оно преобразуется в событие.

непонятно...
нужна описывать работу/структуру потока с сигналами-слотами и а уж "компилятор" все сам разложить по полкам, но эта связь будет основываться на событиях

или

описывать работу/структуру потока нужна как с событиями?

спасибо
25  Qt / Вопросы новичков / потоки / ThreadTimer : Январь 30, 2022, 15:43
Цитировать
конспект:
Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010
Процессы/потоки

619 - потоки / 618_ThreadTimer
Вас не должно смущать, что объект таймера (объект timer) был создан
статически, а не динамически, при помощи оператора new: так как метод run()
является методом для исполнения кода в потоке, разрушение объекта
таймера произойдет только при завершении работы потока. После вызова метода
exec() произойдет запуск цикла событий, который заблокировал бы
исполнение всех дальнейших команд метода run(), если бы таковые имелись.

Этот метод можно сравнить с функцией main(), ведь в ней мы поступаем
аналогичным образом, когда запускаем методом QApplication::exec() цикл
обработки событий основного потока приложения, без которого не была
бы возможна работа ни одного Qt-приложения с пользовательским
интерфейсом.

непонятно именно это:

Цитировать
который заблокировал бы исполнение всех дальнейших команд метода run()

Код:
slackware 12.2
qt-4.8.7

спасибо
26  Qt / Вопросы новичков / Re: QFile.open() - не выдает ошибку, при отсутствии файла : Январь 29, 2022, 21:49
требует наличия QCoreApplication
нет, не требует
Цитировать
все заработало так как надо!

всем спасибо
27  Qt / Вопросы новичков / Re: QFile.open() - не выдает ошибку, при отсутствии файла : Январь 29, 2022, 19:08
> А при чем здесь QApplication app(argc,argv);?
после добавления, сообщение об ошибке "проявилось" Подмигивающий

в начальном тексте "аппликейшн" не было

> Всё работает, как должно.
кто-бы сомневался Улыбающийся

UPDATE - все заработало так как надо! что это было - ручной или мозговой глюк?! ... не понятно :о)
правда немного пересборал GST/QT4-пакеты, возможно это помогло Улыбающийся

спасибо
28  Qt / Вопросы новичков / Re: QFile.open() - не выдает ошибку, при отсутствии файла : Январь 29, 2022, 18:27
ключевая фраза
Код:
QApplication app(argc,argv);

теперь новая непонятка
Код:
return app.exec(); // не возвращается в консоль обратно
return 0         ; // возвращается
29  Qt / Вопросы новичков / QFile.open() - не выдает ошибку, при отсутствии файла : Январь 29, 2022, 13:10
добрый день
простой тест/отработка, не выдается "ошибка" при отсутствии файла
Код:
////////////////////////////////////////////////////////////////////////////////
#include <QApplication>
#include <QLabel>
#include <QObject>
#include <QtGui>
#include <QList>
#include <QLinkedList>
////////////////////////////////////////////////////////////////////////////////
int main(int argc, char *argv[])
////////////////////////////////////////////////////////////////////////////////
{
QFile file("file.txt");

if(file.open(QIODevice::ReadOnly))
  {
  QTextStream stream(&file);
  QString str;

  while(!stream.atEnd())
    {
    str = stream.readLine();
    qDebug() << str;
    }

  if(stream.status() != QTextStream::Ok)
    {
    qDebug() << "Ошибка чтения файла";
    }

  //file.close();
  }
else
  {
  //###!!!
  // отсутствие файла не вываливается в ошибку!
  //###!!!
  qDebug() << "Ошибка открытия файла";
  }

file.close();
return 0;
}
////////////////////////////////////////////////////////////////////////////////
Страниц: 1 [2]

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