作者:虚坏叔叔
博客:https://xuhss.com
早餐店不会开到晚上,想吃的人早就来了!😄
QML文本控件属性的绑定
一、QML界面添加控件
qml
添加文本Text
:
这里比较重要的是:
text:“”+MainApp.demoNum
实现了文本控件和MainApp
对象中的demoNum
属性的绑定
Text {
id:text
x:400
y:400
text:""+MainApp.demoNum
color: "#ff0000"
font.pointSize: 50
}
二、添加控件的绑定
1. MainApp.h
中添加属性,:
Q_PROPERTY(int demoNum READ demoNum WRITE setDemoNum NOTIFY demoNumChanged)
添加int 变量demoNum,它有两个函数:读和写。以及一个响应函数demoNumChanged
,当变量发生变化时,就会运行到这个函数里。
2. 添加变量的成员变量
3.添加属性对应的函数的声明和实现
MainApp.h
定义3个函数:
int demoNum() const;
void setDemoNum(int newValue);
signals:
void demoNumChanged(int newValue);
MainApp.cpp
添加函数的是实现:
emit
告诉界面值发生了改变,会调用demoNumChanged
函数,
int MainApp::demoNum() const
{
return m_DemoNum;
}
void MainApp::setDemoNum(int newValue)
{
if (m_DemoNum != newValue)
{
m_DemoNum = newValue;
emit demoNumChanged(m_DemoNum);
}
}
通过在testFunc()
函数中,添加属性的设置:
void MainApp::testFunc()
{
qDebug()<<"MainApp::testFunc()";
setDemoNum(demoNum() + 1);
}
也就是说 当点击按钮时,会设置属性的值增加1
,当增加1
的时候,会调用:
emit demoNumChanged(m_DemoNum);
发送一个信号,会使得界面刷1
,但是我们并没有写界面的逻辑,这个过程时怎么发生的呢?
这就是QT
框架帮我们生成了代码,我们可以生成项目
会生成一个moc_MainApp.cp
文件:
在这里加一个断点:
F5
调试运行程序可以发现在这里会走到这个文件里面,实现界面的动态显示。
三、总结
- 本文使用QML控件属性和C++对象的最基本的绑定过程 。
- 如果觉得文章对你有用处,记得
点赞
收藏
转发
一波哦~
💬 往期优质文章分享
- C++ QT结合FFmpeg实战开发视频播放器-01环境的安装和项目部署
- 解决QT问题:运行qmake:Project ERROR: Cannot run compiler ‘cl‘. Output:
- 解决安装QT后MSVC2015 64bit配置无编译器和调试器问题
- Qt中的套件提示no complier set in kit和no debugger,出现黄色感叹号问题解决(MSVC2017)
- Python+selenium 自动化 - 实现自动导入、上传外部文件(不弹出windows窗口)
🚀 优质教程分享 🚀
- 🎄如果感觉文章看完了不过瘾,可以来我的其他 专栏 看一下哦~
- 🎄比如以下几个专栏:Python实战微信订餐小程序、Python量化交易实战、C++ QT实战类项目 和 算法学习专栏
- 🎄可以学习更多的关于C++/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦!
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
❤️ C++ QT结合FFmpeg实战开发视频播放器❤️ | 难度偏高 | 分享学习QT成品的视频播放器源码,需要有扎实的C++知识! |
💚 游戏爱好者九万人社区💚 | 互助/吹水 | 九万人游戏爱好者社区,聊天互助,白嫖奖品 |
💙 Python零基础到入门 💙 | Python初学者 | 针对没有经过系统学习的小伙伴,核心目的就是让我们能够快速学习Python的知识以达到入门 |
🚀 资料白嫖,温馨提示 🚀
关注下面卡片即刻获取更多编程知识,包括各种语言学习资料,上千套PPT模板和各种小程序、Web、客户端项目源码等等资料。更多内容可自行查看哦!