UE学习记录03----UE5.2 使用MVVM示例

news2024/10/6 4:10:22

1.打开ue5.2新建C++项目

2.项目中通过类导向新建C++类,父类选择为UMVVMViewModelBase,创建完成会自动打开vs

 

3.在VS中对新建的类进行宏定义

使用 C++ 类向导 创建的类声明自动通过 UCLASS() 宏进行处理。 UCLASS() 宏使得引擎意识到这个类的存在,并且还可以同键盘修饰符结合使用来在引擎中设置该类的行为。

类声明包含很多变量 和/或 函数声明。 这些可以通过 UPROPERTY() 和 UFUNCTION() 宏分别进行处理,这些宏的功能和`UCLASS() 宏类似。
组件也和`UPROPERTY()
宏一起设置。

 

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "MVVMViewModelBase.h"
#include "TestViewModel.generated.h"


// Blueprintable 必须写,默认的VM不支持蓝图
UCLASS(Blueprintable, DisplayName = "Test ViewModel")
class MYPROJECT111_API UTestViewModel : public UMVVMViewModelBase
{
	GENERATED_BODY()
public:
    UPROPERTY(BlueprintReadWrite, FieldNotify, Setter, Getter)
    float Scale = 1.0f;


private:
    void SetScale(float Value)
    {
        UE_MVVM_SET_PROPERTY_VALUE(Scale, Value);
    }
    float GetScale() const
    {
        return Scale;
    }
};

4.①在ue5.2项目中新建object蓝图类,继承自刚新建的类,并添加自己需要的变量。②新建用户界面,并制作相关控件

5.①在用户界面绑定model

 

 

②绑定view

 

 

 6.保存后编译运行:值随着拉伸而变化

后端也可以通过get方法对相关属性获取值(这里暂时没写)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/916659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

opencv进阶19-基于opencv 决策树cv::ml::DTrees 实现demo示例

opencv 中创建决策树 cv::ml::DTrees类表示单个决策树或决策树集合,它是RTrees和 Boost的基类。 CART是二叉树,可用于分类或回归。对于分类,每个叶子节点都 标有类标签,多个叶子节点可能具有相同的标签。对于回归,每…

基于matlab的lorenz混沌系统仿真与分析

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..................................................................................... l…

控制台实现家庭记账本功能

需求&#xff1a; 在控制台实现家庭记账本的小功能&#xff0c;功能如下 参考代码如下&#xff1a; import java.util.Scanner;/*** <p>家庭账本-综合案例</p>** author 波波老师(weixin : javabobo0513)*/ public class Demo24 {public static void main(Strin…

虚拟机密码忘了如何解决?

很久以前使用过的虚拟机&#xff0c;因为太久时间没有密码忘了&#xff0c;在网上查询了一种好的方法进行解决&#xff0c;写篇博客记录一下&#xff01;&#xff01;&#xff01; 打开虚拟机&#xff0c;让虚拟机启动 启动中疯狂按Esc&#xff0c;使得页面出现下图&#xff1…

【ES6】—【必备知识】—箭头函数

一、定义函数 1. ES5 1. 普通函数预定义&#xff0c;再调用 console.log(sum(1, 2)) function sum (x, y) {return x y } console.log(sum(1, 2))2. 函数表达式 按代码顺序定义 console.log(sum(1, 2)) // sum is not a function // sum不是一个函数 var sum function (x…

linux常会用到的命令

查看gpu上运行的进程&#xff1a; nvidia-smi 查看进程的完整信息 ps -f -p 进程号 搜索含有指定字符的进程信息&#xff0c;如radar ps -ef|grep radar 复制文件时排除某个文件夹&#xff0c;如从源路径中排除data rsync -av --excludedata/ 源路径 目标路径查看磁盘占用…

<kernel>kernel 6.4 USB-之-hub_port_init()分析

&#xff1c;kernel&#xff1e;kernel 6.4 USB-之-hub_port_init()分析 kernel 6.4 USB系列文章如下&#xff1a; &#xff1c;kernel&#xff1e;kernel 6.4 USB-之-hub_event()分析 &#xff1c;kernel&#xff1e;kernel 6.4 USB-之-port_event()分析 &#xff1c;kernel&…

快速搭建 Linux 学习平台

最近换了一个新的笔记本电脑&#xff0c;原来的学习环境没了&#xff0c;所以就重新搭建一下&#xff0c;顺便把这个过程给记录下来&#xff0c;希望可以帮助有需要的人。一个学习环境最主要的目的是简化学习需要准备的时间&#xff0c;不需要花费太多的时间在哪些不必要的细枝…

【ownCloud】添加信任域

在我进行使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘后 我的虚拟机更改了ip地址导致出现下列状况 报错&#xff1a;您正在访问来自不信任域名的服务器。 please contact your administrator. if you are an administrator of this instance, configure the &q…

重叠率控制(算法详细介绍含SCL和梯形图源代码)

产品包装和线缆保护材料的包覆都需要进行材料包装重叠率的控制,这篇博客和大家详细介绍重叠率控制算法。阅读本篇博客之前大家需要对比例随动运动控制系统以及收卷排线控制有所了解,这样大家会更容易理解包材重叠率控制,相关文章链接如下: 运动控制比例随动系统_正运动随动…

JavaScript 闭包是什么:最佳实践指南

闭包是指在一个函数内部创建另一个函数&#xff0c;并且内部函数可以访问外部函数的变量、参数以及其他内部函数&#xff0c;即使外部函数已经执行完毕。这种机制使得内部函数保留了对外部作用域的引用&#xff0c;即使外部作用域已经不再活跃。 为什么闭包重要&#xff1f; 闭…

CTFhub-sqli注入-Referer注入

在最后添加 Referer: (注意 R 大写&#xff0c; Referer后面是 &#xff1a;&#xff0c;Content-Length: 与 Referer: 之间没有空行) 1 2 3 1 union select 1,database() -1 union select 1,database() -1 union select 1,group_concat(table_name)from information_sche…

【Java 高阶】一文精通 Spring MVC - 转发重定向(四)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

框架分析(3)-Vue.js

框架分析&#xff08;3&#xff09;-Vue.js 专栏介绍Vue.js核心特点响应式数据绑定组件化开发虚拟DOM模板语法插件系统 对比总结优缺点优点简单易学响应式数据绑定组件化开发虚拟DOM生态系统和社区支持 缺点生态系统相对较小文档和教程相对较少适用于中小型项目 专栏介绍 link…

Skywalking Kafka Tracing实现

背景 Skywalking默认场景下&#xff0c;Tracing对于消息队列的发送场景&#xff0c;无法将TraceId传递到下游消费者&#xff0c;但对于微服务场景下&#xff0c;是有大量消息队列的业务场景的&#xff0c;这显然无法满足业务预期。 解决方案 Skywalking的官方社区中&#xf…

Linux内核学习(七)—— 定时器和时间管理(基于Linux 2.6内核)

目录 一、内核中的时间概念 二、节拍率&#xff1a;HZ 实时时钟 系统定时器 三、定时器 系统定时器是一种可编程硬件芯片&#xff0c;能以固定频率产生定时器中断&#xff0c;它所对应的中断处理程序负责更新系统时间&#xff0c;也负责执行需要周期性运行的任务。 一、内…

python中的matplotlib画直方图(数据分析与可视化)

python中的matplotlib画直方图&#xff08;数据分析与可视化&#xff09; import numpy as np import pandas as pd import matplotlib.pyplot as pltpd.set_option("max_columns",None) plt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus]Fa…

fastdeploy部署多线程/进程paddle ocr(python flask框架 )

部署参考&#xff1a;https://github.com/PaddlePaddle/FastDeploy/blob/develop/tutorials/multi_thread/python/pipeline/README_CN.md 安装 cpu&#xff1a; pip install fastdeploy-python gpu &#xff1a;pip install fastdeploy-gpu-python #下载部署示例代码 git cl…

【python】jupyter notebook导出pdf和pdf不显示中文问题

文章目录 写在前面1. 使用jupyter notebook导出pdf1.1 安装Pandoc1.2 安装MiKTex1.3 示例导出pdf 2. 中文显示问题2.1 显示中文问题示例2.2 解决办法1&#xff1a;修改tex2.3 解决办法2&#xff1a;修改内置文件 写在前面 使用jupyter notebook导出pdf时&#xff0c;出现了一些…

java 项目运行时,后端控制台出现空指针异常---java.lang.NullPointerException

项目场景&#xff1a; 提示&#xff1a;这里简述项目背景&#xff1a; 场景如下&#xff1a; java 项目运行时&#xff0c;后端控制台出现如下图所示报错信息&#xff1a;— 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; java 项目运行时&#xff0c;后…