Просмотр сообщений
|
Страниц: 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 способов, плюсы/минусы/подводные камни спасибо
|
|
|
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 реализации, кот. сам по себе требует перекомпиляции. что я понимаю не правильно?! спасибо
|
|
|
21
|
Qt / Вопросы новичков / Динамическая загрузка формы (ui-file)
|
: Январь 30, 2022, 15:49
|
конспект: Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010 Динамическая загрузка формы (ui-file)
QPushButton* pcmdReset = pwgtForm->findChild<QPushButton*>("m_cmdReset"); // ищем кнопку и коннектим
т.е. понятно, что это то, что "доктор прописал". непонятно, почему нельзя было реализовать механизм "сквозного" обращения к "элементам"? ведь проектируя форму мы задаем "осознанные" имена этим элементам, то, почему-бы просто не использовать эти имена для доступа?! а только вот таким "извратом" через поиск?! спасибо
|
|
|
22
|
Qt / Вопросы новичков / Процессы/потоки, реализация read-only
|
: Январь 30, 2022, 15:48
|
конспект: Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010 Процессы/потоки
Например, если один поток записывает информацию в файл, то все другие не смогут использовать этот файл до тех пор, пока поток не освободит его.
как на счет реализации read-only? спасибо
|
|
|
23
|
Qt / Вопросы новичков / Процессы/потоки, Сигнально-слотовые соединения
|
: Январь 30, 2022, 15:46
|
конспект: Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010 Процессы/потоки
Сигнально-слотовые соединения
мы можем взять сигнал объекта одного потока и соединить его со слотом объекта другого потока. соединение при помощи метода connect() предоставляет дополнительный параметр режима обработки. Этот параметр по умолчанию имеет значение Qt::AutoConnection, что соответствует автоматическому режиму. Как только происходит высылка сигнала, Qt проверяет, происходит связь в одном и том же или в разных потоках.
Если это - один и тот-же поток, то высылка сигнала приведет к прямому вызову метода. - разные потоки, сигнал будет преобразован в событие и доставлен нужному объекту.
вы можете высылать сигналы и получать их, не заботясь о блокировке ресурсов.
Вы можете перемещать объект, созданный в одном потоке, в другой, обработка будет произведена "правильно"
не понятно, что значит: - не заботясь о блокировке ресурсов (а если к ресурсу будет нужен множественный доступ? mutex- semaphore?) - обработка будет произведена "правильно" (что значить правильно? а может быть еще и не правильно?) спасибо
|
|
|
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()
спасибо
|
|
|
27
|
Qt / Вопросы новичков / Re: QFile.open() - не выдает ошибку, при отсутствии файла
|
: Январь 29, 2022, 19:08
|
> А при чем здесь QApplication app(argc,argv);? после добавления, сообщение об ошибке "проявилось" в начальном тексте "аппликейшн" не было > Всё работает, как должно. кто-бы сомневался UPDATE - все заработало так как надо! что это было - ручной или мозговой глюк?! ... не понятно :о) правда немного пересборал GST/QT4-пакеты, возможно это помогло спасибо
|
|
|
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; } ////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|