当前位置: 首页 > news >正文

PythonStudio 控件使用常用方式(二十一)TTrayIcon

PythonStudio是一个极强的开发Python的IDE工具,官网地址是:https://glsite.com/ ,在官网可以下载最新版的PythonStudio,同时,在使用PythonStudio时,它也能及时为用户升到最新版本。它使用的是Delphi的控件,常用的内容是与Delphi一致的。但是相关文档并一定完整。现在我试试能否逐步把它的控件常用用法写一点点,也作为PythonStudio的参考。

从1.2.1版开始,PythonStudio又增加了很多新的控件。

TTrayIcon是一个托盘图标控件。所谓的托盘图标,就是类似微信、QQ、WIFI信号等,在屏幕右下角位置显示的图标。根据需要,可以在打开程序就显示这个图标,也可以只在最小化时显示图标。

组件位置

TTrayIcon位于Additional下

使用方式

最常用的使用方式,是把TTayIcon控件和TPopupMenu同时加入,这样,不仅在托盘里显示了小图标,同时,右键点击小图标,还能完成一些功能性的操作
在这里插入图片描述

Icon属性、Icons属性、IconIndex属性

设置图标有2种方式。

  • 一种是直接制作或下载ICO文件,通过在对象检查器中,加载相应图标,来进行设置,如上图显示
  • 如果用Icons属性,则需要和TImageList共同配合完成,即在TimageList中先加载进多个图标,然后把Icons属性设置为TImageList,再根据需要设置IconIndex

在这里插入图片描述
如果懒得找图标,直接用程序的图标也可以,设置方法为:

self.TrayIcon1.Icon=Application.Icon

Visible属性

如果设置为True,即在托盘中显示图标,反之,不显示。所以一般在使用时,可以有两种方式,一是直接在属性中设置为True,即只要窗体打开,就有图标;另一种是设置为False,只有当窗体最小化时再通过窗体的Resize事件判断最小化,再修改为True,显示图标

class Form1(Form)def __(init)__(self, owner):......# 添加窗体调整大小事件self.OnResize = self.FormResizedef FormResize(self, Sender):# 判断是否为最小化,是则设置托盘图标为是self.TrayIcon1.Visible=False if self.WindowState==wsMinimized else True

PopupMenu属性

如果需要,先加入TPopupMenu控件,并通过右键点击,在Menu Editor中加入各菜单项

接下来,在PopupMenu属性中,选择新建的PopupMenu控件
这样,在右击托盘图标时,即可展示菜单,进行进一步操作。

Hint属性

设置文本后,在鼠标移到图标上时,会出现提示
在这里插入图片描述

BallonHint、BallonTitle、BallonTimeout、BallonFlags属性

这是一系列的通知提示,是一种新的提示方式,它的效果更加好,如下图所示

  • BallonFlags:通知图标
  • BallonHint:通知内容
  • BallonTimeout:通知时间,10000表示通知在10秒钟后自动关闭
  • BallonTitle:通知标题
    在这里插入图片描述

但是它需要有几个前提

  • 必须要把托图标设置为True
  • 必须要调用self.TrayIcon1.ShowBalloonHint()函数打开

Animate、AnimateInterval属性

这两个属性是对图标进行动画,比如微信来信息后,托盘图标会闪烁一样,或QQ来信息,托盘图标会变成闪烁的头像,这些就可以用这两个属性来完成

在这里,需要先将进行变换的不同图标通过ImageList导入,
在这里插入图片描述
然后设置Icons、Animate、AnimateInterval属性即可

  • Animate:是否使用动画
  • AnimateInterval:多张图之间的切换时间间隔,500为0.5秒
    在这里插入图片描述
    当然,这些属性也可以用代码来实现。

常用方法

  • OnAnimate: 写动画代码的事件
  • OnBalloonClick: 点击 BalloonHint 时…
  • OnClick: 单击图标时…
  • OnDblClick:双击图标时

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 生物制药及化工行业ERP解决方案
  • 汽车免拆诊断案例 | 2010款劳斯莱斯古斯特车中央信息显示屏提示传动系统故障
  • 电动自行车出海黑马Avento独立站拆解(上)丨出海笔记
  • 2024.8.12
  • vue2前端阿里云oss服务端签名直传
  • 非线性RCD负载:电力系统的智能管理
  • 19116 丑数
  • 数据结构与算法 - B树
  • Django基础知识
  • SpringBoot基础(一):快速入门
  • 【对抗性训练】FGM、AWP
  • 使用 mongoexport 导出 JSON 文件和 使用 mongoimport 导入 JSON 文件
  • Bug 解决 | 前端项目无法正确安装依赖?
  • 免费【2024】springboot 个人健康管理网站的设计与实现
  • 排序算法之基数排序
  • [译]如何构建服务器端web组件,为何要构建?
  • canvas绘制圆角头像
  • Electron入门介绍
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • hadoop集群管理系统搭建规划说明
  • javascript 总结(常用工具类的封装)
  • java概述
  • JS实现简单的MVC模式开发小游戏
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • VUE es6技巧写法(持续更新中~~~)
  • 关于extract.autodesk.io的一些说明
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 山寨一个 Promise
  • 世界上最简单的无等待算法(getAndIncrement)
  • 事件委托的小应用
  • 异常机制详解
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 主流的CSS水平和垂直居中技术大全
  • 白色的风信子
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • $.proxy和$.extend
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (70min)字节暑假实习二面(已挂)
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (南京观海微电子)——COF介绍
  • (南京观海微电子)——示波器使用介绍
  • (七)Flink Watermark
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)h264中avc和flv数据的解析
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .Mobi域名介绍
  • .Net MVC + EF搭建学生管理系统
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • /etc/fstab和/etc/mtab的区别
  • /var/log/cvslog 太大
  • @DependsOn:解析 Spring 中的依赖关系之艺术