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

网站建设的需求方案怎么写怎样做网站建设

网站建设的需求方案怎么写,怎样做网站建设,黄岛区做网站多少钱,html编辑器安卓版手机版软件文章目录 概念实现方案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.pierceye.com/news/464652/

相关文章:

  • 沈阳网站建设设计企业网站设计与管理系统
  • 婚纱照网站制作梁山网站建设价格
  • 做现货去哪些网站营销好呢网站 服务报价
  • 网站建设渠道做网站前端和平面配合
  • 北京交友最好的网站建设wordpress 移动支付宝
  • 2015百度推广网站遭到攻击非遗网页设计作品欣赏
  • 网站空间需要多大网站推荐几个免费的
  • 做一个网站花多少钱建行系统
  • 滁州市住房城乡建设部网站wordpress title背景
  • 餐饮手机微网站怎么做wordpress 多语言建站
  • 企业信息系统案例东昌府聊城网站优化
  • 做美食直播哪个网站好php网站开发数据列表排重
  • 网站建设 职责网站分站加盟
  • 单页网站产品手机网站免费生成
  • 无锡电子商务网站建设公司德国网站的后缀名
  • 服务器做视频网站赣州企业做网站
  • 如何看出网站用dede做的网站百度快照
  • 做网站很难吗五种新型营销方式
  • 个人网站搭建模拟感想江西企业网站建设哪家好
  • 长春企业网站建设网站制作公司相关工作
  • 免费课程网站有哪些兼职网站项目建设报告
  • 建立网站免费dedecms网站地图制作
  • 网页设计公司网站制作做网站最主要是那个一类商标
  • 卫生局网站建设方案网站架构设计英文翻译
  • 学做衣服网站有哪些智能开发平台软件
  • wordpress 下载站插件wordpress清楚所有评论
  • 公司网站建设工作计划网站设置受信任
  • 网站如何做实名验证码深圳企业网站推广
  • 傻瓜式大型网站开发工具餐饮业手机php网站
  • 网站建设小细节图片东阳网站建设yw126