c语言sscanf函数的用法是什么
239
2022-11-28
QML关于控件截图
在写qml程序的时候,遇到了需要截图的功能,
下面来看看怎么获取控件的截图
首先,所有的可视控件其实都继承了QQuickItem这个类的
所以所有控件都有截图的功能,当然这个只能在c++里实现
首先,定义一个截图类继承public QObject,
#include
#include
要用到上面两个头文件
两个私有变量
QQuickItem *m_grab_item;
QSharedPointer
定义这样一个函数,Q_INVOKABLE void setItem(QObject *itemObj); // 保存图片
下面是它的实现,
void qjsontest::setItem(QObject *itemObj)
{
m_grab_item = qobject_cast
m_grab_result = m_grab_item->grabToImage();//获取控件图片
QQuickItemGrabResult * grabResult = m_grab_result.data();//获取数据
connect(grabResult,SIGNAL(ready()),this,SLOT(saveimage()));//这里是必须这样写的,因为调用了ready()这个准备函数,里面做了很多处理
//信号连接
}
定义一个槽函数
private slots: void saveimage();void qjsontest::saveimage(){ QImage img = m_grab_result->image();//这里转成图片 qDebug()<#include
.cpp文件
#include "qjsontest.h"#include qml;文件 import QtQuick 2.7import QtQuick.Controls 1.5ApplicationWindow { visible: true width: 640 height: 480 title: qsTr("Hello World")id:rootItem{ id: idItem width: 200 height: 200 x:1; y:1; clip: true;Rectangle{ width: 200 height: 200 color:"red" Button { x:5 y:5 width: 64 height: 48 text: qsTr("calc") }}} Button { x:300 y:100 width: 64 height: 48 text: qsTr("normal") onClicked: capIol_vm.setItem(idItem); }}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~