flutter开发桌面应用

尽意
2024-04-12 / 0 评论 / 36 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年04月13日,已超过284天没有更新,若内容或图片失效,请留言反馈。

flutter开发windows桌面应用的基础

需要用到一款插件:bitsdojo_window
在 pub.dev 官网搜索

然后导入依赖,在pubspec.yaml文件引入依赖

dependencies:
  bitsdojo_window: ^0.1.6

在main函数中进行初始化

  // 简单处理原生跟flutter通信
  WidgetsFlutterBinding.ensureInitialized();

  appWindow.size = const Size(600, 450);
  runApp(const MyApp());
  appWindow.show();
  doWhenWindowReady(() {
    final win = appWindow;
    const initialSize = Size(600, 450); //初始化
    win.minSize = initialSize; // 设置软件最小窗口大小
    win.size = initialSize; // 默认的窗口大小
    win.alignment = Alignment.center; // 窗口的位置
    win.title = "Custom window with Flutter"; // 窗口标题
    win.show(); // 展示
  });

这个时候运行会发现顶部还有系统默认的关闭/最大化/最小化样式。
我们一般情况下都是自定义的,可以在windows\runner\main.cpp添加以下代码取消掉

#include <bitsdojo_window_windows/bitsdojo_window_plugin.h>
auto bdw = bitsdojo_window_configure(BDW_CUSTOM_FRAME | BDW_HIDE_ON_STARTUP);

现在运行会发现系统默认样式已经没有了,但是窗口是不能拖动的,可以通过bitsdojo_window插件提供的WindowTitleBarBox(child: MoveWindow(),)组件来设置可以拖动的位置
luwtnivb.png

现在标题栏可以拖动了,开始自定义最大化/最小化/关闭按钮
bitsdojo_window插件已经给我们提供好了对应的组件

Row(
      children: [
        MouseRegion(
          cursor: SystemMouseCursors.click,
          child: MinimizeWindowButton(),
        ),
        MaximizeWindowButton(),
        CloseWindowButton()

      ],
    );

luxlbc09.png

2

评论 (0)

取消