Ответы пользователя по тегу C++
  • QML StackView + ListView: доступ к конкретному элементу модели?

    vitaly_KF
    @vitaly_KF Автор вопроса
    Разработчик Qt/C++
    В общем, остановился на варианте с QSortFilterModel. Переопределил метод filterAcceptsRow, там фильтрую всё так, чтобы остался 1 элемент.

    Затем создал новый компонент, внутри которого есть ListView с interactive = false и в него помещаю делегат и отфильтрованную модель. По тестам работает стабильно и шустро на 1000+ записей.

    PS: Поправил ошибки в своём вопросе, писал с телефона в пробке, уж прошу простить тех, кому пришлось это увидеть это до правки =)
    Ответ написан
    Комментировать
  • Qt. Как понять, почему undefined reference на класс?

    vitaly_KF
    @vitaly_KF
    Разработчик Qt/C++
    Приведи пожалуйста декларацию класса ProductItemRelatives и покажи, как ты вызываешь его методы из другого кода.
    Ответ написан
  • Как работать с камерой используя QML?

    vitaly_KF
    @vitaly_KF
    Разработчик Qt/C++
    Привет.

    Вот здесь есть пример использования шейдеров в постобработке изображения с камеры. Возможно там будет то, что ты ищешь: https://developer.ubuntu.com/api/apps/qml/sdk-14.1...
    Ответ написан
    Комментировать
  • Qt: как узнать время простоя системы?

    vitaly_KF
    @vitaly_KF
    Разработчик Qt/C++
    Есть ещё класс QDesktopWidget, возможно он отслеживает все глобальные события, попробуйте.
    Ответ написан
    Комментировать
  • QSystemTrayIcon drag-and-drop как?

    vitaly_KF
    @vitaly_KF
    Разработчик Qt/C++
    Так как QSystemTrayIcon всё же нследуется от QObject, то обрабатывать события предназначенные для QWidget он всё же не может. Думаю вариант с прозрачным виджетом вполне подходит. Нет возможности получать от иконки какие-либо события, вроде показа/скрытия, но всё же можно получить его геометрию через
    QRect QSystemTrayIcon::geometry () const
    

    А следовательно можно унаследоваться от QSystemTrayIcon, переопределить
    void QObject::timerEvent ( QTimerEvent * event ) [virtual protected]
    

    и периодически опрашивать геометрию иконки, чтобы перемещать наш прозрачный виджет…

    ну что-то вроде:
    #include <QSystemTrayIcon>
    
     class MySystemTrayIcon : public QSystemTrayIcon, QWidget
     {
         Q_OBJECT
    
     public:
         MySystemTrayIcon(QObject *parent = 0);
    
     protected:
         void timerEvent(QTimerEvent *event);
     };
    
     MySystemTrayIcon::MySystemTrayIcon(QObject *parent)
         : QSystemTrayIcon(parent), QWidget(0)
     {
         startTimer(1000);   // 1-second timer
     }
    
     void MySystemTrayIcon::timerEvent(QTimerEvent *event)
     {
         QWidget::setGeometry (QSystemTrayIcon::geometry());
     }
    


    Не фонтан конечно, но вполне работоспособно… Как ужа не этот виджет вешать drag-and-drop думаю Вы и сами знаете…
    Ответ написан
    1 комментарий