qml与c++混合编程之简单demo说明
来源:互联网 发布:河北云狐网络 编辑:程序博客网 时间:2024/06/05 14:13
最近接触QML,感觉非常kuo,demo中实现一个按键,名为Open,功能就是打开文件,很简单。打开过程是c++干事,界面是QML写的。
qml与c++混合编程不清楚的,可以看我前面一篇文档。
file.h
#ifndef FILE_H
#define FILE_H
#include <QObject>
class test_file: public QObject
{
Q_OBJECT
public:
explicit test_file(QObject *parent = 0);
signals:
void someSignal();
public slots:
void on_actionOpen_triggered(); // 打开文件菜单
};
#endif // FILE_Hon_actionOpen_triggered();是槽函数,还得有个signals函数;
file.cpp
#include "file.h"#include "QDebug"#include <QtWidgets/QFileDialog>test_file::test_file(QObject *parent):QObject(parent){}
void test_file::on_actionOpen_triggered()// 打开文件菜单
{
QString fileName = QFileDialog::getOpenFileName(); // 获取文件路径
emit someSignal();
qDebug()<<fileName;
}main.cpp
#include "mainwindow.h"
#include <QApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include <QQmlEngine>
#include <QtQml>
#include "file.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QQmlApplicationEngine engine;
test_file f;
engine.load(QUrl(QStringLiteral("qrc:/edit/main.qml")));
engine.load(QUrl(QStringLiteral("qrc:/edit/Buttons.qml")));
engine.rootContext()->setContextProperty("FILE_USER",&f);
return a.exec();
}
main.qml
import QtQuick 2.0
import QtQuick.Controls 1.1
ApplicationWindow {
id: aw
visible: true
width: 900
height: 900
title: qsTr("edit")
Rectangle {
width: 600
height: 600
color: "#609ca0"
Rectangle{//按钮
x:50;y:40
Buttons{
anchors.horizontalCenter: parent.horizontalCenter
text: "Open"
onClick.onClicked:FILE_USER.on_actionOpen_triggered()
}
}
}
}
Buttons.qml
import QtQuick 2.0
Rectangle {
id:button_type
property alias onClick:ma
property alias text: textElement.text;
width: 90; height: 40
border.color: "steelblue";border.width:2
radius: 8
Text {
id: textElement
anchors.centerIn: parent
font.pointSize: 25
style: Text.Raised;
}
MouseArea{
id: ma
anchors.fill: parent
}
}
阅读全文
0 0
- qml与c++混合编程之简单demo说明
- qml与c++混合编程之简单demo说明
- QT之QML与C++混合编程
- QML与C++混合编程
- QML与c++混合编程
- QML与C++混合编程
- Qt Quick 之 QML 与 C++ 混合编程详解
- Qt Quick 之 QML 与 C++ 混合编程详解
- Qt Quick 之 QML 与 C++ 混合编程详解
- QML 与 C++ 混合编程(1)
- QML 与 C++ 混合编程(2)
- Qml 与 C++ 混合编程整理
- 详解QML与C++混合编程使用
- QML与C++混合编程使用
- QML与C++混合编程使用
- QML与C++混合编程详解
- C++与QML混合编程实现2048
- QML与C++混合编程详解
- OJ题目 查找最大元素 C语言实现
- Leaflet API 翻译上
- 进制转换:二进制、八进制、十六进制、十进制之间的转换
- php 数组模糊查询
- Hive相关
- qml与c++混合编程之简单demo说明
- node request如何请求第三方服务器的文件
- apkbuiler.bat编译出现'THIS TOOL IS DEPRECATED.See --help for more information'
- JavaSE基础知识学习一知识梳理
- mysql行转列之sum
- Linux下搭建web应用环境
- Leaflet API 翻译下
- “后进生”数学学科上演完美逆袭,成最具竞争力专业之一
- Hbase详解