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

news/2025/1/13 17:26:45/文章来源:https://www.cnblogs.com/xiezhr/p/18200444

写在前面

这是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.hqwc.cn/news/723323.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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

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

linux部署简单部署

.NetCore程序的linux部署说明 主要内容 本篇介绍在linux部署.netcore程序的几种方式,包括传统方式,服务打包,docker部署等。 系统环境/工具腾讯云服务器操作系统:centos8.2 地址:124.221.86.194 用户名:root 密码:hyt-linux12345!远程连接工具:xShell6 数据库使用maria…

ASP

asp.net core 3.0 学习笔记01 2022.04.29~05.02 本篇为基本入门,介绍一些基本概念和配置,对asp.net core建立一个基本的概念。 1.创建一个Web项目本质上来说asp.net core web 项目其实就是一个控制台程序public class Program {public static void Main(string[] args){Creat…

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…

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

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

扫描线

扫描线 引入 扫描线一般运用在图形上面,它和它的字面意思十分相似,就是一条线在整个图上扫来扫去,它一般被用来解决图形面积、周长,以及二维数点等问题。 面积问题 例题1:【模板】扫描线 想象有一条线从下往上扫,会将整个图像依次扫描。我们只需要计算出每一条矩形(即图…

笛卡尔树

笛卡尔树 引入 笛卡尔树是一种二叉树,每一个节点由一个键值二元组\((k,w)\)构成。要求k满足二叉搜索树的性质,而w满足堆的性质。 一个有趣的事实是,如果笛卡尔树的\(k,w\)键值确定,且k互不相同,w互不相同,那么这个笛卡尔树的结构是唯一的。上面这棵笛卡尔树相当于把数组元…

虚树

虚树 什么是虚树 虚树常常被用在树形\(dp\)中。当一次询问仅仅涉及到整棵树中少量节点时为每次询问都对整棵树进行\(dp\)在时间上是不可接受的。此时,我们建立一棵仅仅包含部分关键节点的虚树,将非关键节点构成的链简化成边或是剪去,在虚树上进行\(dp\)。 虚树包含所有的询问…

矩阵乘法与矩阵快速幂

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{…

状压dp

状压dp 1.状态压缩 状态压缩就是使用某种方法,以最小的代价来表示某种状态,通常是用一串01数字(二进制数)来表示各个点的状态。这就要使用状态压缩的对象的点的状态只有两种:0和1。 2.使用条件 1.解法需要保存一定的状态数据(表示一种状态的一个数据值),每个状态通常情…

Redis之哨兵模式

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

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

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