Просмотр сообщений
|
Страниц: [1] 2 3 ... 761
|
1
|
Qt / Пользовательский интерфейс (GUI) / Re: QEventLoop::DialogExec (undocumented)
|
: Мая 15, 2022, 10:39
|
Взял из исходников. Undocumented = не написано в букваре. Ссылку видел раньше, но предположение неверно - Qt не устанавливает этот флаг самостоятельно, это может сделать лишь код вызывающего. Немного поэкспериментировал (типа "попробывал"), увы, с этим флагом упр-е не отдается вызывающему - наверно пока диалог не закроется, дальше потерял интерес т.к. мои проблемы это не решает.
|
|
|
2
|
Qt / Вопросы новичков / Re: QActions
|
: Мая 09, 2022, 11:29
|
Почему нельзя просто ...
Потому что Вам уже хочется быть экспертом  Но, судя по всему, в Qt нет такой возможности (кроме пресловутого таймера)
А это не так, возможность есть
|
|
|
3
|
Qt / Вопросы новичков / Re: QActions
|
: Мая 08, 2022, 08:26
|
Согласен, что будет неудобно. Удобнее было бы написать одну процедуру, которая вызывалась бы автоматически и в ней бы определялась доступность Actions. Но, судя по всему, в Qt нет такой возможности (кроме пресловутого таймера)
Почему нет? Потому что не хочется искать?  Для hotkeys есть QEvent::ShortcutOverride, момент открытия меню тоже можно поймать (здесь правда на OSX нужен нативный код)
|
|
|
4
|
Qt / Вопросы новичков / Re: QActions
|
: Мая 07, 2022, 11:10
|
Для начала нужно самому себе сформулировать задачу, которую хотите решить Желание поучать - свойство человеческой натуры  А соответствующие сигналы этих объектов соединить с этим слотом.
При разрастании кода это становится неудачным/неудобным, приходится втыкать много сигналов там и сям. Др подход - дизаблить "динамически", т.е вычислять доступность айтема при открытии меню или при нажатии hotkey. Хотя и здесь свои минусы
|
|
|
5
|
Qt / Пользовательский интерфейс (GUI) / Re: "Тяжелое" окно
|
: Мая 01, 2022, 05:50
|
Но наверное кэшировать данные?
Ну "что/как кешировать" - глухая конкретика задачи, обсуждать нет смысла. Возможно (обдумываю) сформулировать так: поймать момент когда данные "тяжелого окна" стали невалидны (типа dirty = true). Это тоже головняк, но допустим, и дальше что? Как организовать разумное поведение для юзера? Можно помечтать о "перезагрузке данных в др нитке"  Наверное проблема уже решилась..
Нет, актуально
|
|
|
7
|
Qt / Пользовательский интерфейс (GUI) / QEventLoop::DialogExec (undocumented)
|
: Апреля 10, 2022, 14:20
|
Добрый день
В гугле ничего внятного не увидел. Любопытство не праздное. Длинная операция, приходится выставлять что-то типа QProgressDialog который зовет processEvents. Беда в том что приходят события что не могут (или не должны) выполняться до завершения этой операции. Было бы замечательно "замкнуть" все события на текущем (модальном) диалоге, но как это сделать?
Спасибо
|
|
|
8
|
Qt / Общие вопросы / Re: Индикатор "Drawing Objects"
|
: Апреля 07, 2022, 11:05
|
Продолжаю копаться. Собсно обновление (что становится видным на экране) происходит "в недрах", см аттач. Понял так это системное событие OSX недоступное из Qt напрямую. Поэтому в Qt+OSX я никак не могу "чего-то вызвать" - и экран обновлен, обязательно нужен processEvents. Ну и шо делать?
|
|
|
9
|
Qt / Общие вопросы / Re: Индикатор "Drawing Objects"
|
: Апреля 06, 2022, 12:59
|
Может, QApplication::processEvents() ?
Так и делаю, другого просто нет. Потом отслеживаю приходящие события. Все одинаково - вызывается UpdateRequest, из него Paint(ы), создается верный буфер. Но при обновлении из paintGL - экран не обновлен. Долго ползал в хвосте UpdateRequest, где зовутся ф-ции типа flush - тоже все одинаково. в cocoa нативный способ заставить вью перерисоваться — послать ему -setNeedsDisplay, что в свою очередь вызовет -drawInRect:
Ну это вызов Paint, т.е. кода рисования, эта фаза проходит
|
|
|
10
|
Qt / Общие вопросы / Индикатор "Drawing Objects"
|
: Апреля 05, 2022, 13:33
|
Добрый день
По каким-то причинам окно индикатора не показывается, а если было показано "до того" - не обновляется. Сама операция - рисование OpenGL (стандартно, через paintGL), как говорят, "по идее" такой проблемы быть не должно. Заграбастал буфер окна в файл (через QBackingStore) там все норм, обновлено. А вот на экране - тишина.
По ходу дела вопрос: ну вот сделали Qevent::UpdateRequest, он позвал Paint(ы), буфер готов, кто (или как, или в какой момент) его шлепает на экран? (хотя бы на OSX)
Спасибо
|
|
|
11
|
Qt / Qt Quick / Re: Виджет настройки
|
: Апреля 01, 2022, 15:11
|
размещяю эту картинку в QScrollArea и....
И вычислить насколько скроллить. Напр я делал так C++ (Qt) bool DisplayWin::DragPan( QMouseEvent * e ) { QPointF org = mImageArea->widget()->mapFrom(mImageArea, QPoint(1, 1)); QPointF ofs = e->localPos() - org; QPointF scroll = mDragPos - ofs; HScroll()->setValue(scroll.x()); VScroll()->setValue(scroll.y()); return true; }
Где mDragPos = e->localPos() при первом нажатии мыши. Если картинка масштабится или это 3D - вычисления будут сложнее только на QML.
Цацка для пижонов
|
|
|
12
|
Qt / Qt Quick / Re: Виджет настройки
|
: Апреля 01, 2022, 14:17
|
что за операция?
Откройте напр картинку в фотошопе и наведите на нее мышу. Нажмите пробел - курсор "рука" покажет что можно двигать картинку. Вот это и есть "pan", т.е. др способ скроллирования, часто более удобный. Конечно нужна QScrollArea и вычислять величину сдвига - этого никто не отменял
|
|
|
13
|
Qt / Qt Quick / Re: Виджет настройки
|
: Апреля 01, 2022, 13:49
|
А зачем виджет и QML? (цыганщиной отдает). Это стандартная операция pan(orama), обычно с зажатой клавишей пробел. Ее всегда надо делать
|
|
|
14
|
Qt / Установка, сборка, отладка, тестирование / Re: No module named Jinja2
|
: Февраля 13, 2022, 12:58
|
Все-таки поставить это приложение хочется. Нашел эту инструкцию. Да, на машине с инетом скачалось 58 метров пытон-зависимостей. Какие-то .whl файлы. Правда у некоторых в имени windows, а мне надо нести их на mac. Ну ладно, сейчас хоть бы как-то продвинуться. Но вот что делать на целевой машине- хз. Инструкция пишет On the system that has no access to internet
Then you can use
pip install --no-index --find-links /path/to/download/dir/ -r requirements.txt
to install those downloaded modules, without accessing the network. Да, но как мне подсунуть под тот пытон что в инсталле?
|
|
|
15
|
Qt / Установка, сборка, отладка, тестирование / Re: No module named Jinja2
|
: Февраля 10, 2022, 10:26
|
я это к тому, что потенциально можно раздать инет со своего телефона (например, через кабель). но если именно безопасность, то так не выйдет.
Нет, так низзя, да у меня и телефона-то нет. Опять Вы хотите решить как-то "организационно", а как же Программирование? 
|
|
|
|
|