B4X编程语言:B4X控件方法汇总
1、AddNode、AddView方法
AddNode(Node As javafx.scence.Node,Left As Double,Top As Double,Width As Double,Height As Double) ' B4J控件
AddView(View As javafx.scence.Node,Left As Double,Top As Double,Width As Double,Height As Double) ' B4J的B4XView
AddView(View As android.scence.View,Left As Int,Top As Int,Width As Int,Height As Int) ' B4A控件
向控件内添加视图控件,用于容器类控件。
BAJ:Pane
B4A:Activity、Panel
示例:
Pane1.AddNode(Button1,10,10,100,30)
Pane1.As(B4XView).AddView(Button1,10,10,100,30)
Panel1.AddView(Button1,10dip,10dip,100dip,30dip)
2、As方法
As(Type As Object)
将对象转换为另一个类型的对象,控件的As方法可以使控件能够使用自己没有的另一个类型控件的属性或方法。
示例:
将Button1顺时针旋转10度
Button1.As(B4XView).Rotation=10
3、BringToFront和SendToBack方法
这两个方法都是更改控件视图的Z顺序方法。
BringToFront是将控件放到最前面,也就是放到最顶层以免被其它层遮挡。
SendToBack正好相反,是将控件向后放,以让其它控件在前面。
我们可以利用这两个方法向同一个容器内同一个位置添加多个相同大小的视图,需要时调到前面,不需要时放到后面隐藏。
示例:
Pane2.As(B4XView).BringToFront ' B4J控件
Pane2.As(B4XView).SendToBack ' B4J控件
Panel2.BringToFront ' B4A控件
Panel2..SendToBack ' B4A控件
4、GetNode、GetView方法
GetNode(Index As Int) As Node ' B4J控件
GetView(Index As Int) As B4XView ' B4J、B4A的B4XView
GetView(Index As Int) As View ' B4A控件
根据控件内的视图索引返回一个视图,B4J:返回Node,B4A:返回View,B4XView:返回 B4XView。
该方法主要用于容器类控件。BAJ:Pane;B4A:Activity、Panel。
示例:
Pane1.GetNode(0).As(B4XView).Color=xui.Color_Blue ' B4J控件
Pane1.As(B4XView).GetView(0).Color=xui.Color_Blue ' B4J控件
Panel1.GetView(0).Color=Colors.Blue ' B4A控件
5、GetAllViewsRecursive方法
GetAllViewsRecursive As IterableList
获取并返回控件内的所有子控件的列表,包括子控件内的子控件。terableList是可迭代列表。
B4J:返回Nodes列表
B4A:返回Views列表
B4XView:返回B4XViews列表
该方法常用于容器类控件。BAJ:Pane,B4A:Activity、Panel。
示例:
For Each v As Node In Pane1.GetAllViewsRecursive ' B4J
If v is Label Then
v.Alpha=0.8
End If
Next
For Each v As B4XView In Pane1.GetAllViewsRecursive ' B4J
......
Next
For Each v As View In Panel1.GetAllViewsRecursive ' B4A
......
Next
6、GetBitmap、GetImage方法
GetBitmap As B4XBitmap ' B4A
GetImage As Image ' B4J的ImageView控件
返回控件的图像,在B4J中用于ImageView控件,在B4A中用于设置了背景图像的控件。
示例:
Dim Image1 as Image=Label1.As(B4XView).GetBitmap
Dim Image1 as Image=ImageView1.GetImage
7、 Initialize方法
Initialize(EventName As String)
用于用代码声明的对象的初始化,在设计器中添加的控件不需要初始化。
EventName是为控件添加事件时要使用的控件名称如:Sub btn1_Click。
示例:
Dim btn1 As Button
btn1.Initialize("btn1")
8、LoadLayout 方法
LoadLayout(LayoutFile As String)
加载布局文件。在B4J用于Pane类型控件、在B4A用于Panel类型控件,布局文件必须放在项目的Files文件夹。
示例:
TabPane1.LoadLayout("MainPage","第一页")
9、RequestFocus 方法
将焦点移到该控件上,如:Button1.RequestFocus。
10、从容器移除控件方法
RemoveNodeFromParent ' B4J控件
RemoveViewFromParent ' B4J、B4A的B4XView
RemoveView ' B4A控件
将控件从其所在容器中移除,其中:RemoveNodeFromParent仅用于B4J。
示例:
Button1.RemoveNodeFromParent
Button1.RemoveViewFromParent
Button1.RemoveView
11、SetAlphaAnimated方法
SetAlphaAnimated(Duration As Int,Alpha As Double) ' B4J
SetAlphaAnimated(Duration As Int,Alpha As Float) ' B4A
为控件设置不透明度动画,在给定时间内从当前不透明度变为指定的不透明度。
Duration:以毫秒为单位的动画时间。
Alpha:不透明度,取值范围0-1。0为完全透明,1为完全不透明。
示例:
按下Button1时不透明度变为0.2,释放时复原
Private Sub Button1_MousePressed (EventData As MouseEvent)
Button1.SetAlphaAnimated(200,0.2)
End Sub
Private Sub Button1_MouseReleased (EventData As MouseEvent)
Button1.SetAlphaAnimated(200,1)
End Sub
12、SetLayoutAnimated方法
SetLayoutAnimated(Duration As Int,Left As Double,Top As Double,PrefWidth As Double,PrefHeight As Double) ' B4J
SetLayoutAnimated(Duration As Int,Left As Int,Top As Int,Width As Int,Height As Int) ' B4A
为控件设置布局动画,在给定时间内,从当前位置、大小变为指定位置、大小。
示例:
Button1.SetLayoutAnimated(200,0,50,150,40)
Button1.SetLayoutAnimated(200,0,50dip,150dip,40dip)
13、SetLayout方法
SetLayout(Left As Int,Top As Int,Width As Int,Height As Int) ' B4A
调整控件大小和布局,仅用于B4A控件。
示例:
Button1.SetLayout(10dip,50dip,150dip,40dip)
14、SetColorAndBorder方法
SetColorAndBorder(BackgroundColor As Int,BorderWidth As Dopuble,BorderColor As Int,BorderComerRadius As Int)
设置控件背景色、边框颜色、边框粗细、边框圆角半径。4A的Int数据要加dip。
示例:
Label1.As(B4XView).SetColorAndBorder(xui.Color_Cyan,1,xui.Color_Blue,5)
15、SetRotationAnimated方法
SetRotationAnimated(Duration As Int,Degree As Double)
为控件设置旋转动画,在给定时间内,以控件中心为圆心,从当前角度旋转到给定角度。
Duration:以毫秒为单位的动画时间。
Degree:旋转角度,正值顺时针旋转,负值逆时针旋转。
示例:
Button1.As(B4XView).SetRotationAnimated(1000,-20)
16、SetSelection方法
SetSelection(Start As Int,Length As Int)
选中控件中指定位置和长度的文本。
B4J:用于TextField、TextArea
B4A:用于EditText
示例:
TextField1.SetSelection(1,5)
EditText1.SetSelection(1,5)
17、SetTextAlignment方法
SetTextAlignment(Vertical As String,Horizontal As String)
设置控件文本的对齐方式。对齐方式选项:
Vertical:TOP、CENTER、BOTTOM
Horizontal:LEFT、CENTER、RIGHT
示例:
Label1.As(B4XView).SetTextAlignment("CENTER","LEFT")
18、SetColorAnimated方法
SetColorAnimated(Duration As Int,FromColor As Int,ToColor As Int)
设置控件背景颜色动画,在给定时间内背景颜色从FromColor渐变到ToColor。
示例:
Button1.As(B4XView).SetColorAnimated(200,xui.Color_Black,xui.Color_LightGray) ' B4J控件
Label1.SetColorAnimated(200,xui.Color_Black,xui.Color_LightGray) ' B4A控件
19、SetTextColorAnimated方法
SetTextColorAnimated(Duration As Int,ToColor As Int) ' 仅B4A控件
设置控件文本颜色动画,在给定时间内,控件文本从当前颜色渐变为给定颜色ToColor,仅用于B4A。
示例:
Label1.SetTextColorAnimated(200,xui.Color_Cyan)
20、SetTextSizeAnimated方法
SetTextSizeAnimated(Duration As Int,TextSize As Double) ' B4J控件
SetTextSizeAnimated(Duration As Int,TextSize As Float) ' B4A控件
设置控件文本大小动画,在给定时间内,文本字体从当前大小变为指定大小。
示例:
Label1.As(B4XView).SetTextSizeAnimated(200,20) ' B4J
Label1.SetTextSizeAnimated(200,20) ' B4A
21、SetVisibleAnimated方法
SetVisibleAnimated(Duration As Int,Visible As Boolean)
设置控件可见性动画,在给定时间内,控件从可见渐变为不可见,或从不可见渐变为可见。
Duration:以毫秒为单位的动画时间。
True:由不可见渐变为可见。
False:由可见渐变为不可见。
示例:
Label1.As(B4XView).SetVisibleAnimated(300,True) ' B4J
Label1.SetVisibleAnimated(300,True) ' B4A
22、 SetSize方法
SetSize(Width As Double,Height As Double) ' 仅B4J
设置控件大小,设计器定义的控件在B4XPage_Created或AppStart例程中不起作用。
示例:
Button1.SetSize(150,50)
23、SelectAll方法
SelectAll用于选中控件中的所有文本
B4J:用于TextField、TextArea
B4A:用于EditText
24、 Snapshot方法
Snapshot As B4XBitmap
捕获控件的外观并返回所渲染的图像。
示例:
Dim Image1 As Image=Label1.Snapshot ' B4J控件
Dim Image1 As Image=Label1.As(B4XView).Snapshot ' B4A控件
ImageView1.SetImage(Image1)
25、Snapshot2方法
Snapshot2(BackgroundColor As javafx.scence.paint.Paint) As Image ' 仅B4J控件
类似Snapshot,但可以设置图像的背景颜色。只对透明背景色的控件有效。
示例:
Dim Image1 As Image=Label1.Snapshot2(fx.Colors.Cyan)
ImageView1.SetImage(Image1)
相关文章:
B4X编程语言:B4X控件方法汇总
1、AddNode、AddView方法 AddNode(Node As javafx.scence.Node,Left As Double,Top As Double,Width As Double,Height As Double) B4J控件 AddView(View As javafx.scence.Node,Left As Double,Top As Double,Width As Double,Height As Double) B4J的B4XView …...

基于XML配置Bean和基于XML自动装配
目录 基于XML配置Bean id分配规则 通过id获取bean 通过类型获取bean 通过C命名空间配置bean 使用C命名空间 通过P命名空间配置bean 通过util:list进行配置bean 指定id,直接ref引用过来 通过外部属性文件配置Bean Bean信息重用(继承)…...
全排列 dfs
给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有 a<b<…<y<z ,而且给定的字符串中的字母已经按照从小到大的顺序排列。 输入格式 输入只有一行,是一个由不同的小写字母组成的字符串…...
linux内存相关命令的尝试
文章目录 前言freeMem 部分的解释Swap 部分的解释 vmstatProcs (进程)Memory (内存)Swap (交换)IO (磁盘 I/O)System (系统)CPU (处理器) pidstat标题行解释数据列解释 sar字段含义解释示例分析 总结 前言 菜就多练,昨天看了一篇有关剖析 RocksDB 内存超限问题的文…...

Vue2 基础
Vue 2 是 Vue.js 的第二个主要版本,于 2016 年发布。它是一个渐进式的 JavaScript 框架,以其简单、灵活、易用性高而广受欢迎。Vue 2 主要专注于构建用户界面(UI),并且非常适合用于构建单页应用(SPA&#x…...

递归问题(c++)
递归设计思路 数列递归 : 如果一个数列的项与项之间存在关联性,那么可以使用递归实现 ; 原理 : 如果一个函数可以求A(n),那么该函数就可以求A(n-1),就形成了递归调用 ; 注意: 一般起始项是不需要求解的,是已知条件 这就是一个典型…...

系统思考—战略决策
别用管理上的勤奋,来掩盖经营上的懒惰。 日本一家物业公司,因经营不善,面临生死存亡的危机。老板为了扭转局面,采取了很多管理手段——提高员工积极性,推行业绩与绩效挂钩,实施各种考核制度。然而…...
wxwidgets xml插入图片的两种方案
wxwidgets xml插入图片的两种方案: 1.使用wxWidgets中的wxRichTextCtrl插入图片,将wxRichTextCtrl的buffer导出为xml文件 参考richtextctrl例子 if (wxTheClipboard->IsSupported(wxDF_BITMAP)){wxBitmapDataObject data;wxTheClipboard->GetData(data);wxBitmap bi…...
大模型呼入机器人如何赋能呼叫中心?(转)
大模型呼入机器人如何赋能呼叫中心?(转) 原作者:开源呼叫中心FreeIPCC 大模型呼入机器人在赋能呼叫中心方面发挥着重要作用,主要体现在以下几个方面: 一、提升服务效率与质量 24小时不间断服务: 大模型呼入机器人能…...
linux下socket本地套接字通讯
使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信。socket进程通信与网络通信使用的是统一套接口,只是地址结构与某些参数不同。 用途 进程间通信:本地套…...
NDRCContextUnmarshall断点函数分析之I_RpcBindingCopy函数的作用
NDRCContextUnmarshall断点函数分析之I_RpcBindingCopy函数的作用 第一部分: void RPC_ENTRY NDRCContextUnmarshall ( // process returned context OUT NDR_CCONTEXT PAPI *phCContext,// stub context to update IN RPC_BINDING_HANDLE hRPC, …...

WebView2教程(基于C++)【一】环境初始化
创建一个VisualStudio C项目,通过NuGet包管理器安装两个包: 注意,在项目属性页设置项目使用:C 20,子系统设置成窗口(相应的预处理器也要改变),DPI识别设置成每个监视器高DPI识别。 …...
go语言中context的用法
0 概述 Context 是 Go 语言中非常重要的一个概念,它主要用于跨多个函数或 goroutine 传递 取消信号、超时控制、截止时间 和 请求范围数据。在并发编程中,Context 提供了更好的控制和管理,尤其是当你需要在多个 goroutine 之间传递状态或进行…...
概括网络给社会生活带来的种种影响
题目 【2002年国考申论】给定资料反映了网络给社会生活带来的种种影响,用不超过200字对这些影响进行概括。 要求:全面,有条理,有层次。(20分) 审题 特定事实:网络给社会生活带来的种种影响基本题型:单一…...
OpenCV相机标定与3D重建(16)将点从齐次坐标转换为非齐次坐标函数convertPointsFromHomogeneous()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::convertPointsFromHomogeneous 是 OpenCV 库中的一个函数,用于将点从齐次坐标(homogeneous coordinates)…...

Jmeter如何对UDP协议进行测试?
Jmeter如何对UDP协议进行测试? 1 jmeter-plugins安装2 UDP-Protocol Support安装3 UDP协议测试 1 jmeter-plugins安装 jmeter-plugins是Jmeter的插件管理器;可以组织和管理Jmeter的所有插件;直接进入到如下页面,选择如图的选项进…...

Unix 传奇 | 谁写了 Linux | Unix birthmark
注:本文为 “左耳听风”陈皓的 unix 相关文章合辑。 皓侠已走远,文章有点“年头”,但值得一阅。 文中部分超链已沉寂。 Unix 传奇 (上篇) 2010 年 04 月 09 日 陈皓 了解过去,我们才能知其然,更知所以然。总结过去…...

【网络】传输层协议UDP/TCP网络层IP数据链路层MACNAT详解
主页:醋溜马桶圈-CSDN博客 专栏:计算机网络原理_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.传输层协议 UDP 1.1 传输层 1.2 端口号 1.3 UDP 协议 1.3.1 UDP 协议端格式 1.3.2 UDP 的特点 1.3.3 面向数据报 1…...

RTMP推流平台EasyDSS在无人机推流直播安防监控中的创新应用
无人机与低空经济的关系密切,并且正在快速发展。2024年中国低空经济行业市场规模达到5800亿元,其中低空制造产业占整个低空经济产业的88%。预计未来五年复合增速将达到16.03%。 随着科技的飞速发展,公共安防关乎每一个市民的生命财产安全。在…...

ORACLE逗号分隔的字符串字段,关联表查询
使用场景如下: oracle12 以前的写法: selectt.pro_ids,wm_concat(t1.name) pro_names from info t,product t1 where instr(,||t.pro_ids|| ,,,|| t1.id|| ,) > 0 group by pro_ids oracle12 以后的写法: selectt.pro_ids,listagg(DIS…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...