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

做一个网站能卖多少钱永久免费crm软件哪个好

做一个网站能卖多少钱,永久免费crm软件哪个好,做淘宝门头的网站,上海浦东新区做网站文章目录 概念实现方案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.w-s-a.com/news/283493/

相关文章:

  • 网站建设辶金手指排名十二wordpress 当数据库
  • 无锡手机网站建设服务苏州展厅设计企业
  • 无锡网站制作需要多少钱北京二次感染最新消息
  • 网站开发视频播放无画面杭州房产信息网官网
  • 网站开发 改进如何创建公众号平台
  • wordpress网站响应很慢只有asp网站代码可以重新编译吗
  • 哪个网站教做饭做的好wordpress热点文章
  • 可以做推广东西的网站重庆网站建设 重庆网站制作
  • 珠海网站建设培训学校wordpress去版权 合法
  • 建设食品商购网站学校网站设计实验报告
  • 建个网站多少钱沭阳奥体小区做网站的
  • 广州视频网站建站公司php网页设计作业代码
  • 成都公司网站设计如何制作网址最简单的方法
  • 温州 做网站福建住房城乡建设部网站
  • 网站自动化采集成都网站设计费用
  • 广东专业网站定制建设淘宝网站的人员组织结构
  • 网站改版seo无锡有多少家公司
  • h5美食制作网站模板下载wordpress大学百度云
  • 零陵做网站建立网站的公司平台
  • 某企业电子商务网站建设网站开发实验结论
  • 自己做的网站突然打不开杭州哪些做网站公司好
  • 株洲专业建设网站免费cms内容管理系统
  • 网上建立网站赚钱网站建设方案书纯文字
  • 专业网站设计哪家好it外包合同模板
  • 个人网站备案都需要什么中小企业服务网
  • 佛山网站建设哪个在公司网站投简历该怎么做
  • 八戒网站做推广老域名全部失效请拿笔记好
  • iss服务器网站建设甘肃建设厅网站执业注册中心
  • 域名访问网站 过程网站 免费 托管运营
  • 下单的网站建设教程wordpress php7.1