JUCE框架教程(3)—— Component Class

前言
Graphic文档: https://docs.juce.com/develop/classGraphics.html
Component文档: https://docs.juce.com/develop/classComponent.html

首先,我们创建一个GUI项目取名为sample,并通过projucer的addbutton添加一个名为Blue的组件

MainComponent.cpp文件里,可以对我们的UI界面进行更改。

MainComponent::MainComponent()
{addAndMakeVisible(blue);setSize (400, 300);
}

MainComponent这个函数里,我们使用addAndMakeVisible()注册了blue组件,使用setSize()确定了页面的宽度和长度。

void MainComponent::paint (juce::Graphics& g)
{//the backgroundColorg.fillAll (juce::Colours::pink);g.setFont (juce::Font (32.0f));//g.fillEllipse(getWidth() / 2 - 100, getHeight() / 2 - 100, 200, 200);g.setColour (juce::Colours::black);g.drawText ("AirGain", getLocalBounds(), juce::Justification::centred, true);
}

ptaint这个函数里,我们定义了一个名为g的Graphics类。
通过fillAll 改变背景颜色,setFont修改字体大小,setColour设置字体颜色,drawText写字。

//define child components
void MainComponent::resized()
{blue.setBounds(0, 0, getWidth(), getHeight()/3);
}

resized这个函数中,可以用来定义子组件(我们之前注册的Blue组件)。通过setBounds来确定这个子组件在页面中显示的位置。

此时的Blue.cpp:

#include <JuceHeader.h>
#include "Blue.h"//==============================================================================
Blue::Blue()
{// In your constructor, you should add any child components, and// initialise any special settings that your component needs.}Blue::~Blue()
{}void Blue::paint (juce::Graphics& g)
{g.fillAll(juce::Colours::skyblue);
}void Blue::resized()
{}

我们单纯地把Blue组件的背景色设置成了蓝色。

最终,编译项目,得到以下的页面:

以上是JUCE组件和Graphics的基本操作,更多操作请查看JUCE官方文档

JUCE框架教程(3)—— Component ClassGraphics入门相关推荐

  1. 从零搭建React全家桶框架教程

    从零搭建React全家桶框架教程 源码地址:https://github.com/brickspert/react-family 欢迎star 提问反馈:blog 原文地址:https://githu ...

  2. Smarty中文手册,Smarty教程,Smarty模板的入门教材

    Smarty中文手册,Smarty教程,Smarty模板的入门教材 首先,这份Smarty中文手册的翻译工作是由喜悦国际村村民自发组织的,不代表任何人的意见和观点.对他们的无私奉献精神,我们表示感谢, ...

  3. Konstrukt PHP REST框架 教程二

    Konstrukt PHP REST框架 教程二 入门 - 第2部分 在本教程中,我们假设你已经完成了第一个教程,因为它的基础上产生的代码从该. 谈判的Content-Type 在大多数情况下会发出一 ...

  4. mybatis select count(*) 一直返回0 mysql_Mybatis教程1:MyBatis快速入门

    点击上方"Java技术前线",选择"置顶或者星标" 与你一起成长 一.Mybatis介绍 MyBatis是一个支持普通*SQL*查询,存储过程和高级映射的优秀持 ...

  5. scrapy爬虫框架教程(二)-- 爬取豆瓣电影

    前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大家讲解一个完整爬虫的流程. 工具和环境 语言:python 2 ...

  6. 【2021版PHP高级教程-Swoole4.X从入门到精通全套高级实战】

    众所周知,Swoole 和我们传统的 PHP 开发差别是有的,需要理解的概念也是有的.使用目前一些基于 Swoole 的框架开发的话,从开发习惯上和传统的TP 框架相差不多.根据官方介绍它是一个底层通 ...

  7. 《SEO教程:搜索引擎优化入门与进阶(第3版)》

    <SEO教程:搜索引擎优化入门与进阶(第3版)> 基本信息 作者: 吴泽欣 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115357014 上架时间:2014-7-1 出 ...

  8. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第六章:数据存储

    第 6 章 数据存储 本章介绍Android 4种存储方式的用法,包括共享参数SharedPreferences.数据库SQLite.存储卡文 件.App的全局内存,另外介绍Android重要组件-应 ...

  9. Spring认证中国教育管理中心-Spring Data Redis框架教程三

    原标题:Spring认证中国教育管理中心-Spring Data Redis框架教程三 10.15.支持类 Packageorg.springframework.data.redis.support提 ...

  10. 好程序员web前端教程分享web前端入门基础知识

    好程序员web前端教程分享web前端入门基础知识,作为合格的Web前端工程师必须得掌握HTML.CSS和JavaScript.只懂其中一两个还不行,必须对这三门语言都要熟悉.下面我们一起来看一看吧! ...

最新文章

  1. pandas获取dataframe数据列的数据类型、获取dataframe每类数据类型数据列的个数、使用select_dtypes函数、include参数以及exclude参数按照数据类型筛选数据
  2. 对float浮动的我的理解,形象生动一点
  3. C#之windows桌面软件第七课:(下集)串口工具实现数据校验、用灯反应设备状态
  4. ASP.NET 设计模式中依赖倒置原则
  5. ES6中的Promise使用方法与总结
  6. Altium Designer 18/AD 设置禁止布线层和铜皮或者其他线之间的间距
  7. LeetCode 1784. 检查二进制字符串字段
  8. html5 页面答题算分,JavaScript实现答题评分功能页面
  9. 每日Ubuntu小技巧 - 在Ubuntu上面安装VMware Workstation
  10. 实现简单的List功能
  11. 前端js代码多文件混淆
  12. DCMTK3.6.5+cmake3.7.1+VS2017配置过程
  13. 金蝶kis专业版公网访问_金蝶KIS远程服务器端和远程客户端配置说明
  14. 搭建p2p文件服务器,p2p服务器搭建
  15. linux svc作用,[svc]linux性能监控
  16. html表单站内搜,网站集成百度、Bing必应搜索引擎,在网页中实现站内全文搜索...
  17. 一个记账易app开发
  18. Nexus 私服搭建及配置
  19. echarts自适应大小或改变窗体大小自适应大小与浏览器最大最小化事件
  20. Typec转HDMI 4K30HZ扩展芯片方案CS5261和CS5266设计参数及电路对比

热门文章

  1. 计算机专业数学建模结课论文,数学建模结课论文3000字论文
  2. matlab dmc控制代码,动态控制矩阵(DMC)算法的浅析
  3. 语法分析——自顶向下分析方法
  4. 最大似然估计 高斯分布 正态分布
  5. 机器视觉运动控制一体机应用例程|橡胶密封圈检测
  6. abb的knx的数据库下载方法_ABB智能家居KNX方案.doc
  7. 网站被移动运营方屏蔽怎么办?
  8. matlab三次根号怎么打,matlab 3次根号怎么写
  9. PetaLinux学习笔记 1
  10. 快递物流配货发货系统学习--以京东物流为例