BlinCTСәуір 26, 2016, 8:05 Т.Ж.
Custom QQuickItem — добавляем в QML объект из C++(click на таймере)
qml, c++, timer, custom qquickitem
Всем привет.
Возникла такая проблема, уже несколько дней бьюсь над проблемой, как задать метод для клика по самому объекту timer?
То есть в данном проекте Евгений демонстрирует, как подцепляем на QML слой объекты кнопок и дает им добро на управление таймером, стоп/старт/сброс.
Но вот как дать самому таймеру метод нажатия? То есть нажали один раз на него и если таймер не запущен то он запускается, а при втором нажатии останавливается. Ну и само собою кнопка внешняя на сброс, тут уже из самого примера есть.
Дополнение по теме, если важно: задумка такая, что если на таймере не установлено время, то при запуске он увеличивает время, но если задали какое-то время например через какой то объект, то тогда время будет идти от выставленного до 0.
Заранее большое спасибо откликнувшимся).
Возникла такая проблема, уже несколько дней бьюсь над проблемой, как задать метод для клика по самому объекту timer?
То есть в данном проекте Евгений демонстрирует, как подцепляем на QML слой объекты кнопок и дает им добро на управление таймером, стоп/старт/сброс.
Но вот как дать самому таймеру метод нажатия? То есть нажали один раз на него и если таймер не запущен то он запускается, а при втором нажатии останавливается. Ну и само собою кнопка внешняя на сброс, тут уже из самого примера есть.
Дополнение по теме, если важно: задумка такая, что если на таймере не установлено время, то при запуске он увеличивает время, но если задали какое-то время например через какой то объект, то тогда время будет идти от выставленного до 0.
Заранее большое спасибо откликнувшимся).
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
Г
- Геній
- Қыр. 13, 2024, 12:46 Т.Қ.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:66ұпай,
- Бағалау ұпайлары-1
t
- torgaev_2024
- Қыр. 8, 2024, 6:20 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:33ұпай,
- Бағалау ұпайлары-10
Соңғы пікірлер
Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
ВР
Linux жүйесінде файлдарды қалай көшіруге болады Screenshot_20240802-065123.png
Влад РусоковТам. 2, 2024, 1:47 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
Енді форумда талқылаңыз
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
BlinCTМаусым 25, 2024, 1 Т.Ж.
BlinCTМамыр 5, 2024, 5:46 Т.Ж.
Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
Приветствую.
Что касается клика по самому таймеру, то на скорую руку я бы предложил отслеживать сам клик в QML слое. А запущен ли таймер или нет, то можно добавить Q_INVOKABLE метод, в котором проверять, запущен ли таймер, или нет. Пример из урока можно доработать следующим образом.
В заголовочном файле таймера
Ну и определение самого метода сделать следующее
То есть растягиваем MouseArea на область таймера и через его метод клика проверяем состояние таймера.
Относительно второй части, то можно использовать, допустим, LineEdit для задания значения таймера. Для упрощения задания таймера из QML можно, как вариант, превратить internalTimer в свойство Q_PROPERTY, чтобы он был доступен для прямого воздействия из QML.
Может я ошибаюсь но мне кажется плодить на QML слое несколько или много виджетов QT не очень хорошо.
В QML есть ComboBox. Сделайте пробный проект с qml.ui файлом и посмотрите в визуальном конструкторе, какие есть объекты и типы. ComboBox должен быть в QtQuick.Controls.
Только кажется
http://doc.qt.io/qt-5/qtquick-controls-qmlmodule.html
Сорян за глупые вопросы по поводу combobox, еще плохо ориентируюсь в QML.