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

怎么做好营销网站开发淄博网站制作形象

怎么做好营销网站开发,淄博网站制作形象,网站seo计划书,开发公司可以顾保安文章目录 概念实现方案1. tray_manager依赖库支持平台实现步骤 2. system_tray依赖库支持平台实现步骤 3. 两种方案对比4. 注意事项5. 话题拓展 概念 系统托盘#xff1a;系统托盘是一种用户界面元素#xff0c;通常出现在操作系统的任务栏或桌面顶部。它是一个水平的狭长区… 文章目录 概念实现方案1. tray_manager依赖库支持平台实现步骤 2. system_tray依赖库支持平台实现步骤 3. 两种方案对比4. 注意事项5. 话题拓展 概念 系统托盘系统托盘是一种用户界面元素通常出现在操作系统的任务栏或桌面顶部。它是一个水平的狭长区域用于显示各种图标和通知以提供快速访问和操作特定应用程序或系统功能。系统托盘通常包含操作系统或第三方应用程序的图标这些图标可以显示有关应用程序状态、提醒和通知等信息。用户可以通过单击这些图标来打开应用程序的主窗口、执行特定功能或查看详细信息。系统托盘的设计旨在提供一种方便的方式来管理和访问常用的应用程序和系统功能以提高用户的工作效率。 效果展示 作为现代操作系统中常见的一个组件系统托盘能够让用户方便地访问常用的应用程序或者系统功能。对于Flutter桌面应用程序开发者来说如何在应用程序中定义系统托盘是一个值得探讨的问题。本文将简介系统托盘的概念并介绍两种可用的Flutter桌面应用程序系统托盘方案。 实现方案 1. tray_manager 依赖库 tray_manager 支持平台 Windows, macOS Linux 实现步骤 在pubspec.yaml中添加依赖 dependencies:...tray_manager: ^0.2.0导入依赖 import package:flutter/material.dart hide MenuItem; import package:tray_manager/tray_manager.dart;配置系统托盘特性 Futurevoid _init() async {//设置系统托盘图标Windows图标必须文件后缀必须是.icoawait trayManager.setIcon(Platform.isWindows? assets/images/tray_icon_original.ico: assets/images/img_1.png,);//设置系统托盘的标题trayManager.setTitle(system tray);//设置系统托盘的标题trayManager.setToolTip(How to use system tray with Flutter:鼠标滑过提示);//设置系统托盘的菜单Menu menu Menu(items: [//设置系统托盘的子菜单MenuItem.submenu(// key key: window_settings,label: 窗口设置,//trayManager 不支持菜单项添加图标该配置无效icon: Platform.isWindows? assets/images/app_icon.bmp: assets/images/img_1.png,submenu: Menu(items: [MenuItem.checkbox(checked: true,label: 毛玻璃效果,onClick: (MenuItem menuItem) {menuItem.checked !(menuItem.checked true);if (kDebugMode) {print(毛玻璃效果 onClick ${menuItem.checked});}},),MenuItem.checkbox(checked: true,label: 窗口置顶,onClick: (MenuItem menuItem) {menuItem.checked !(menuItem.checked true);if (kDebugMode) {print(窗口置顶 onClick ${menuItem.checked});}},),MenuItem.checkbox(checked: true,label: 自启动,onClick: (MenuItem menuItem) {menuItem.checked !(menuItem.checked true);if (kDebugMode) {print(自启动 onClick ${menuItem.checked});}},),//可选类型的菜单栏MenuItem.checkbox(checked: true,label: 图标闪烁,onClick: (MenuItem menuItem) {menuItem.checked !(menuItem.checked true);if (kDebugMode) {print(图标闪烁 onClick ${menuItem.checked});}},),])),//分割线MenuItem.separator(),MenuItem(key: open_app,label: Open App,onClick: (MenuItem menuItem) {}),MenuItem(key: exit_app,label: Exit App,onClick: (MenuItem menuItem) {}),],);if (kDebugMode) {print(menu:${menu.toJson()});}//为系统托盘配置菜单await trayManager.setContextMenu(menu); }监听TrayListener import package:flutter/material.dart; import package:tray_manager/tray_manager.dart;class HomePage extends StatefulWidget {override_HomePageState createState() _HomePageState(); }class _HomePageState extends StateHomePage with TrayListener {overridevoid initState() {trayManager.addListener(this);super.initState();_init();}overridevoid dispose() {trayManager.removeListener(this);super.dispose();}void _init() {// ...}overrideWidget build(BuildContext context) {// ...} //未触发该事件override void onTrayIconRightMouseUp() {// TODO: implement onTrayIconRightMouseUpsuper.onTrayIconRightMouseUp();if (kDebugMode) {print(onTrayIconMouseUp);} }//未触发该事件 override void onTrayIconMouseUp() {super.onTrayIconMouseUp();if (kDebugMode) {print(onTrayIconMouseUp);} } override void onTrayIconMouseDown() {if (kDebugMode) {print(onTrayIconMouseDown);}//弹出托盘的菜单栏trayManager.popUpContextMenu(); }override void onTrayIconRightMouseDown() {if (kDebugMode) {print(onTrayIconRightMouseDown);}//弹出托盘的菜单栏trayManager.popUpContextMenu(); }//弹出托盘的菜单栏点击事件 override void onTrayMenuItemClick(MenuItem menuItem) {if (kDebugMode) {print(menuItem:${menuItem.key}-${menuItem.label});} } }2. system_tray 依赖库 system_tray 支持平台 Windows, macOS Linux 实现步骤 在pubspec.yaml中添加依赖 dependencies:...system_tray: ^2.0.3导入依赖 import package:system_tray/system_tray.dart;配置系统托盘特性 //创建SystemTray 对象 final SystemTray _systemTray SystemTray(); Timer? _timer;//配置系统托盘 Futurevoid _initSystemTray() async {//设置系统托盘的图标必须是.ico后缀的图片await _systemTray.initSystemTray(iconPath: Platform.isWindows? assets/images/tray_icon_original.ico: assets/images/img_1.png,);//设置系统托盘的标题_systemTray.setTitle(system tray);//设置系统托盘的提示_systemTray.setToolTip(How to use system tray with Flutter);//注册系统托盘事件_systemTray.registerSystemTrayEventHandler((eventName) {debugPrint(eventName: $eventName);//注册系统托盘事件点击事件if (eventName kSystemTrayEventClick) {//Windows系统显示主窗口 其他系统弹出托盘菜单弹框Platform.isWindows? windowManager.show(): _systemTray.popUpContextMenu();//注册系统托盘事件鼠键右键} else if (eventName kSystemTrayEventRightClick) {//Windows系统弹出托盘菜单弹框 其他系统 显示主窗口Platform.isWindows? _systemTray.popUpContextMenu(): windowManager.show();}});//创建托盘的菜单final Menu _menuMain Menu();await _menuMain.buildFrom([//创建子菜单SubMenu(label: 窗口设置,//创建为菜单子项添加图标格式必须是bmpimage: Platform.isWindows? assets/images/app_icon.bmp: assets/images/img_1.png,children: [//创建可选框类型的菜单项MenuItemCheckbox(label: 毛玻璃效果,checked: true,name: acrylic_cb,onClicked: (MenuItemBase menuItem) async {//更新MenuItemCheckbox的状态await menuItem.setCheck(!menuItem.checked);if (kDebugMode) {print(毛玻璃效果 onClick ${menuItem.checked});}if (menuItem.checked true) {showAcrylic(color);} else {closeAcrylic();}}),MenuItemCheckbox(label: 窗口置顶,checked: true,onClicked: (MenuItemBase menuItem) async {await menuItem.setCheck(!menuItem.checked);if (kDebugMode) {print(窗口置顶 onClick ${menuItem.checked});}if (menuItem.checked true) {windowManager.setAlwaysOnTop(true);} else {windowManager.setAlwaysOnTop(false);}}),MenuItemCheckbox(label: 自启动,checked: true,name: auto_start_cb,onClicked: (MenuItemBase menuItem) async {// menuItem.checked !(menuItem.checked true);await menuItem.setCheck(!menuItem.checked);if (kDebugMode) {print(自启动 onClick ${menuItem.checked});}}),MenuItemCheckbox(label: 图标闪烁,checked: true,name: flash_cb,onClicked: (MenuItemBase menuItem) async {MenuItemCheckbox? flashCb _menuMain.findItemByNameMenuItemCheckbox(flash_cb);await flashCb?.setCheck(!menuItem.checked);if (kDebugMode) {print(图标闪烁 onClick ${menuItem.checked});}if (menuItem.checked) {startFlashIcon();} else {stopFlashIcon();}}),]),//菜单分割线MenuSeparator(),//菜单项MenuItemLabel(label: Open App,image: Platform.isWindows? assets/images/app_icon.bmp: assets/images/img_1.png,onClicked: (MenuItemBase menuItem) {windowManager.show();}),MenuItemLabel(label: Exit App,image: Platform.isWindows? assets/images/app_icon.bmp: assets/images/img_1.png,onClicked: (MenuItemBase menuItem) {windowManager.close();}),]);if (kDebugMode) {print(menu:${_menuMain.toString()});}//为系统托盘设置菜单项await _systemTray.setContextMenu(_menuMain); }完整代码 import package:flutter/material.dart; import package:tray_manager/tray_manager.dart;class HomePage extends StatefulWidget {override_HomePageState createState() _HomePageState(); }class _HomePageState extends StateHomePage {Timer? _timer;final SystemTray _systemTray SystemTray();overridevoid initState() {super.initState();_initSystemTray();}overridevoid dispose() {_timer.cancel();super.dispose();}void _initSystemTray() {// ...}//开始图标闪烁 void startFlashIcon() {if (kDebugMode) {print(startFlashIcon);}var imageList const [assets/images/tray_icon_original.ico,assets/images/tray_icon.ico];var index 0;_timer Timer.periodic(const Duration(milliseconds: 500), (Timer timer) async {if (kDebugMode) {print(path:${imageList[index]});}await _systemTray.setImage(imageList[index]);index (index 0) ? 1 : 0;}); }//停止图标闪烁 void stopFlashIcon() async {if (kDebugMode) {print(stopFlashIcon);}_timer?.cancel();_timer null;await _systemTray.setImage(assets/images/tray_icon_original.ico); }overrideWidget build(BuildContext context) {// ...} }3. 两种方案对比 system_tray 支持菜单项添加图标tray_manager不支持菜单项添加图标4. 注意事项 Windows平台系统托盘图标需要是以.ico后缀的图片菜单项图标需要是.bmp后缀的图片否则图片无法显示 5. 话题拓展 BMP格式BitmapBMP是一种无损的位图图像格式最初由Microsoft开发。它可以存储图像的像素颜色和位置信息并支持不同的色彩深度。BMP文件通常较大因为它们不经过压缩保留了图像的每个像素的完整信息。BMP格式适用于Windows系统和一些图像编辑软件。ICO格式IconICO是一种用于存储图标的文件格式。ICO文件通常用于表示计算机系统上的各种图标例如文件夹、应用程序和网站等的图标。ICO文件可以包含多个图标大小和颜色深度的版本以适应不同的显示需求。ICO文件可以在Windows系统中直接使用也可以在网页或应用程序中使用。
http://www.zqtcl.cn/news/179762/

相关文章:

  • 河南建设网站公司简介苏州建设网站价格
  • pc网站 手机网站电商小程序免费开店
  • 零基础学pytho 网站开发餐饮公司最好的网站建设
  • 品牌网站建设 蝌蚪5小微信分销怎么做
  • 二级域名建站虚拟主机与云服务器的区别
  • 如何安装网站模板文件网站维护具体做啥
  • 怎么建设官方网站登封网络推广公司
  • 苏州画廊网站建设vs2015 建设微网站
  • 海南网站建设及维护自己创建网站403
  • 网站推广的意义怎样把建好的网站上传到互联网
  • 王店镇建设中学网站seo搜索排名优化是什么意思
  • 北京哪家网站建设公司比较好js页面下载wordpress
  • 网站开发组岗位建设银行官网网站人事
  • 找公司做网站运营怎么样百度推广代运营
  • flask做克隆网站网站放到云服务器上怎么做
  • 有网站怎样做推广精品网站源码资源程序下载
  • 怎么建设淘宝联盟的网站梧州网站设计公司
  • 注册查询官方网站网站建设pad版本是什么
  • 做网站先得注册域名吗网站cdn+自己做
  • 甘肃省建设厅网站非织梦做的网站能仿吗
  • 天元建设集团网站苏州门户网站建设
  • 建设网站需要学习什么语言福州优化搜索引擎
  • 网站开发大致多少钱手机上怎么制作网站吗
  • 重庆网站seo营销模板wordpress学习 知乎
  • 桃子网站logowordpress post meta
  • 做网站一般需要什么青岛网络推广
  • 东莞网站建设 光龙wordpress4.6 nodejs
  • 宁海县建设局网站网站建设行业前景
  • 2003网站的建设谷歌seo新手快速入门
  • 网站建设服务开发网页制作下载链接怎么做