【PB案例学习笔记】-05 图片浏览器

news/2024/10/4 23:26:38

写在前面

这是PB案例学习笔记系列文章的第5篇,该系列文章适合具有一定PB基础的读者。

通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。

文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git

gitee代码仓库

需要源代码的小伙伴们可以自行下载查看,后续文章涉及到的案例代码也都会提交到这个仓库【pb-project-example

如果对小伙伴有所帮助,希望能给一个小星星⭐支持一下小凡。

一、小目标

本篇文章的小目标主要是利用图片框(Picture)控件及其函数来对图片进行打开、读取等操作。

图片支持的格式有bmpjpggifrlewmf

展示图片

本实例中我们实用到了控件的如下属性,一些没用到的,我们会在实例后面具体说明,感兴趣的小伙伴可以在实例结束后查看

属性 数据类型 描述
PictureName String 指定图片框显示的图片的文件名,要求扩展名为bmpjpggifrlewmf
Height Integer 指定控件的高度
Width Integer 指定控件的宽度

二、创建程序基本框架

① 建立工作区

② 建立应用

③ 建立窗口

④ 建立控件

在窗口中建立一个SingleLineEdit控件,一个CommandButton控件和一个Picture控件(下图所示位置),各个控件名称依次为

sle_1cb_1p_1

图片控件

控件布局

⑤ 保存窗口

将建立的窗口保存为w_main

三、设置各个控件的外观属性

控件名称 主要属性
w_main Title 图片浏览器
sle_1 Text (空)
cb_1 Text Default
p_1 Border OriginalSize

四、编写代码

① 在按钮cb_1控件的clecked事件中添加如下代码

if sle_1.text <> '' or isnull(sle_1.text) thenif fileExists(sle_1.text) thenp_1.picturename = sle_1.textp_1.height = 1500p_1.width = 2000elsemessagebox('提示信息','图片文件不存在',Exclamation!)end ifelsemessagebox('提示信息','请输入图像文件名',Exclamation!)
end if

代码中用到fileExists 函数,我们在之前的文件浏览器文章中说到过,作用时判断文件是否存在

② 在开发界面左边的System Tree 窗口中双击exampleapp应用对象,并在Open中添加如下代码

open(w_main)

五、运行程序

运行程序,在sle_1控件内输入要浏览图片的完整名称,点击打开就可以看到

展示图片

六、Picture 控件常用属性

属性 数据类型 描述
Border Boolean 指定控件是否有边框 True-有边框;False-无边框
BorderStyle Border 指定控件的边框风格,有效值有:StyleBox! StyleLowered!StyleRaised!StyleShadowBox
FocusRectangle Boolean 指定当控件得到焦点时,是否在控件周围显示一个由虚线组成的方框。True -显示 False-不显示
Invert Boolean 指定控件是否以反转颜色显示图片。True - 反转颜色;False -不反转颜色
OriginalSize Boolean 指定是否以图片的原始大小显示图片。True -以原始图片大小显示,此时修改图片框控件的Width和Height属性;False- 以图片框控件大小显示图片。注:代码中不能修改该属性
PictueName String 指定图片框显示的图片的文件名,要求扩展名为bmpjpggifrlewmf
Height Integer 指定该控件的高度
Width Integer 指定该控件的宽度

本期内容到这儿就结束了,希望对您有所帮助。

我们下期再见 ヾ(•ω•`)o (●'◡'●)

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

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

相关文章

Cursor是什么?基于ChatGPT代码编辑器的cursor如何使用?VS Code如何迁移到Cursor的步骤

Cursor 是一个基于 Visual Studio Code(VS Code)技术构建的高级代码编辑器,专为提高编程效率并更深度地整合 AI 功能而设计。它不仅继承了 VS Code 的强大功能和用户界面,还增加了专门针对 AI 支持的特色功能。Cursor 是 VS Code 的一个分支,这意味着它基于 VS Code 的代码…

abp项目

abp项目.net版本升级 系统基于abp框架,.net版本为.net core 2.1,升级之后为.NET 6.0 1.升级项目的目标框架和依赖包项目列表如下升级顺序如下 HPE_ProjectManagement_WebApi.Web (需要修改的东西最多) HPE_ProjectManagement_WebApi.Utility HPE_ProjectManagement_WebApi.C…

Maven详解

1 maven介绍 1)为什么使用maven Maven是一个强大的项目管理和构建工具,它能够简化Java项目的构建、依赖管理和发布过程。以下是Maven的一些主要特点和功能:项目结构管理:Maven采用约定优于配置的原则,提供了标准的项目结构模板,使得开发人员可以快速创建和维护项目。 依赖…

代码随想录 算法训练营 d6 哈希表 Leetcode242 有效的字母异位词 Leetcode349 两个数组的交集 Leetcode202 快乐数Leetcode1 两数之和

哈希表 很重要 哈希表 哈希表 场景 一般哈希表都是用来快速判断一个元素是否出现集合里 一般来说 数组模拟 哈希set 哈希map 不同的场景当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。 但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组…

矩阵乘法与矩阵快速幂

1 矩阵乘法 1.定义 若矩阵A的大小为\(n \times m\),矩阵B的大小为\(m \times p\),则两个矩阵可以做乘法,得到的矩阵C的大小为\(n \times p\)。 \[A = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \end{bmatrix} \]\[B = \begin{…

Redis之哨兵模式

概述无哨兵模式的主从切换的方法是当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费时费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。 Redis从2.8开始正式提供了Sentinel(哨兵)架构来解决这个问题…

ibus-libpinyin无法使用中括号下一页(未解决)

问题 中括号切换上下页用惯了,使用这个不能【】真不习惯。 SunPinyin sunpinyin可以[]切换,但是【】本身变成其他字符了。 不能使用shift将半路的中文换为英文。比如我打拼音,输入完后按shift,我希望他变成英文,并且切换到英文。 搜狗输入法 系统是Ubuntu 22.04 搞了半天用…

m基于FPGA的FIR低通滤波器实现和FPGA频谱分析,包含testbench和滤波器系数MATLAB计算程序

1.算法仿真效果 本系统进行了Vivado2019.2平台的开发,Vivado2019.2仿真结果如下:整体仿真结果如下:放大看,滤波效果如下:对应的频谱如下:FPGA的RTL结构如下:最后用matlab对比仿真,结果如下:可以看到,FPGA的滤波效果和频谱分析与matlab的结果一致。2.算法涉及理论知识…