qml定时器示例
来源:互联网 发布:重庆seo网站建设 编辑:程序博客网 时间:2024/06/11 02:43
效果是红色图形每隔一秒移动一次,循环在窗口绕圈圈
头文件,qml文件要加入到资源文件哦
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QQuickWidget>
#include <QQmlContext>
class Widget : public QWidget
{
Q_OBJECT
//使得qml可以引用widget的属性,大概的意思是窗口大小改变发出RectChanged信号,然后返回改变后的大小width和height赋值给_width,_height
Q_PROPERTY(int _width READ returnW NOTIFY RectChanged)
Q_PROPERTY(int _height READ retrunH NOTIFY RectChanged)
public:
Widget(QWidget *parent = 0);
~Widget();
int returnW(){return _width = width();}
int retrunH(){return _height = height();}
void resizeEvent(QResizeEvent *event);
signals:
void RectChanged();
private:
QQuickWidget *qmlWidget;
int _width, _height;
};
#endif // WIDGET_H源文件
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
qmlWidget = new QQuickWidget(this);
qmlWidget->rootContext()->setContextProperty("View",this);
qmlWidget->setSource(QUrl(QStringLiteral("qrc:/Timer.qml")));
resize(700,500);
}
Widget::~Widget()
{
if(qmlWidget)
{
delete qmlWidget;
qmlWidget = NULL;
}
}
void Widget::resizeEvent(QResizeEvent *event)
{
emit RectChanged();
}qml文件
import QtQuick 2.0
import QtQuick.Controls 1.4
Rectangle {
id: root
width: View._width
height: View._height
color: "green"
Rectangle {
id: rect
x: 0; y: 0
width: 50
height: 50
color: "red"
}
property var walk: false
Timer {
id: timer
interval: 1000
//这个属性设置为true才能每隔1秒触发一次onTriggered.
repeat: true
onTriggered: {
if(rect.x+50 < root.width && !walk)
{
rect.x += 50;
}else
{
if(rect.y+50<root.height && !walk)
{
rect.y += 50;
}else
{
walk = true;
if(rect.x-50>0)
{
rect.x -= 50;
}else
{
if(rect.y-50>0)
{
rect.y -= 50;
}else
{
walk = false;
}
}
}
}
}
}
Button {
anchors.centerIn: parent
onClicked: timer.start()
text: "Start"
}
}
阅读全文
0 0
- qml定时器示例
- qml 中的js定时器
- QML事件处理--定时器
- QML之Timer定时器
- QML 国际化(中文示例)
- 定时器示例
- 在QML中使用定时器
- qml学习-----------定时器的使用
- qml 基本元素运用示例
- Qt5 - c++嵌入qml示例
- QtQuick学习笔记之QML定时器Timer
- GCD定时器示例代码
- 【Timer】定时器使用示例
- Quartz定时器使用示例
- quartz定时器入门示例
- 定时器 cron 参数示例
- QML基础——QML国际化(中文示例)
- QML基础——QML国际化(中文示例)
- matlab的一些语法知识
- 支付宝前端团队详解基于Node.js Web框架Chair
- Swift多线程之Operation:按优先级加载图片
- android程序actionbar阴影去除的办法
- 1、shiro Hello
- qml定时器示例
- Git详解之八 Git与其他系统
- 无法启动hiveserver的解决方法
- shell 语法 shell命令 用shell编写进度条
- svn同步图标显示问题
- Linux实现TCP连接
- HDU1754
- JAVA 敏感词过滤
- MySQL数据库 小数用百分比表示语法