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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 195
16  Программирование / Общий / Re: Объект умеет сам себя рисовать? : Апрель 18, 2017, 13:38
Ну и был один CWindow::DrawObjectsParam на всех, капитально запутанный, все if'ы были свалены туда, вставить каждый новый случай превращалось в мучение
Регистрируйте обработчики (std::function) на каждый тип параметра и вызывайте уже их при отрисовке. Через те же лямбды всё можно упростить.
17  Программирование / Общий / Re: Объект умеет сам себя рисовать? : Апрель 18, 2017, 10:46
Унифицируйте хранение параметров.
Храните их, например, в QVariant-e.
Код
C++ (Qt)
struct CObjectParam {
 СOpenGLObject * mObject;
 QVariantList params;          
};
 
18  Qt / Общие вопросы / Re: tableView->viewport() не ловит RightButton + AltModifier : Март 28, 2017, 14:24
Обычно Alt+кнопка_мыши зарезервированны Window Manager-ом, поэтому до приложения это событие и не доходит.
19  Qt / Пользовательский интерфейс (GUI) / Re: Ввод координат : Март 21, 2017, 12:05
В перегруженном
Код
C++ (Qt)
QWidget *QStyledItemDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
создай QLineEdit c нужной inputMask.
20  Qt / Model-View (MV) / Re: drag n drop вставка между строк : Март 01, 2017, 11:59
Скорее-всего в каком-то переопределенном методе не вызываешь базовый.
21  Qt / Пользовательский интерфейс (GUI) / Re: QGridLayout координаты и рисование : Февраль 26, 2017, 13:38
Код
C++ (Qt)
QRect QWidget::childrenRect() const
22  Qt / Вопросы новичков / Re: Наследование сигналов : Февраль 17, 2017, 12:17
А зачем вообще использовать protected для сигналов?
До Qt5 только такие и были.
23  Qt / Вопросы новичков / Re: Сортировка в столбце в QTableView по дате : Февраль 15, 2017, 12:28
Помещай в модель не строку (QString) отображающую дату, а саму дату (QDate).
24  Qt / Пользовательский интерфейс (GUI) / Re: Граббить содержимое виджета по его изменению. : Февраль 14, 2017, 16:57
Но немного медленнее чем с "прямым" рисованием контролов ручками.
Дык за всё нужно платить. Особенно за пиксмапы, которые хранятся на стороне граф.подсистемы.
Попробуй вместо QPixmap задействовать QPicture:
Код
C++ (Qt)
QPicture pic;
render( &pic );
m_target->setPicture( pic );
25  Qt / Пользовательский интерфейс (GUI) / Re: Граббить содержимое виджета по его изменению. : Февраль 14, 2017, 13:10
Да, с атрибутом я погорячился.
Достаточно, как посоветовал Igors всего-лишь поймать UpdateRequest:
Код
C++ (Qt)
bool event( QEvent* e )
{
if( e->type() == QEvent::UpdateRequest )
{
QElapsedTimer et;
et.start();
m_target->setPixmap(grab());
qDebug() << "elapsed:" << et.elapsed();
}
return QWidget::event( e );
}
 
Т.е. никакие таймеры и сигналы не нужны.
26  Qt / Пользовательский интерфейс (GUI) / Re: Граббить содержимое виджета по его изменению. : Февраль 14, 2017, 11:42
Проблема в том, блин, что grab(), что render() вызывают paintEvent()... вот если бы как-то заблокировать рекурсию..
Попробуй запускать таймер только в случае, когда на виджете не выставлен атрибут Qt::WA_WState_InPaintEvent.
27  Qt / Qt Quick / Re: Что выбрать для десктопа? : Февраль 13, 2017, 13:50
Интересный вариант. А не могли бы вы чуть детальнее раскрыть?
В качестве JavaScript движка пока задействован QScriptEngine.
В нём зарегистрированы функции создания виджетов по имени класса, работой с БД и корбой.
Реализован на базе QUiLoader свой загрузчик форм и создатель виджетов/лэйаутов с регистрацией фабрики кастомных виджетов.
Загрузчик при загрузке форм делает QScriptEngine::evaluate() соответствующего *.js с установкой "this" на загруженный виджет.
И уже в скрипте коннектимся к сигналам и дёргаем слоты или Q_INVOKABLE методы либо пропертя.
Но, на всю эту обвязку, конечно, пришлось потратить n-ое количество времени.
28  Qt / Qt Quick / Re: Что выбрать для десктопа? : Февраль 10, 2017, 11:24
В своих проектах использую динамическую загрузку UI (*.ui) форм + JavaScript.
Вся бизнес логика в скриптах.
29  Qt / Пользовательский интерфейс (GUI) / Re: Не работает контекстное меню таблицы : Февраль 09, 2017, 18:42
Код
C++ (Qt)
item = pw->itemAt(pos + QPoint(0, pw->verticalHeader()->offset());
30  Qt / Пользовательский интерфейс (GUI) / Re: Custom popup и QWidgetAction : Февраль 07, 2017, 11:20
Пока окно имеет тип Qt::Popup сделать ничего не получится, т.к. всё события перехватывает QApplication.
Тут 2 варианта, либо перехватывать события, но не факт что всё получится,
либо отказаться от Qt::Popup и самому навешивать грабы и опять же перехватывать события, что довольно-таки геморно.
В общем быстро в любом случае не получится.
Страниц: 1 [2] 3 4 ... 195

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