Flutter bitsdojo_window 桌面应用,窗户的设计库

Windows窗口实例

图片[1]-Flutter bitsdojo_window 桌面应用,窗户的设计库-it网络技术分享

代码实例

import 'package:bitsdojo_window/bitsdojo_window.dart';

void main() {
  runApp(const MyApp());
  // 在下面添加此代码
  //当窗口准备好时做
  doWhenWindowReady(() {
    appWindow.title = '这是标题';
    final initialSize = Size(600, 450); //定义尺寸
    // appWindow.maxSize = initialSize; //最大尺寸
    appWindow.minSize = initialSize; //最小尺寸

    appWindow.size = initialSize; //尺寸(当前显示尺寸)
    appWindow.alignment = Alignment.center; //窗口显示位置

    appWindow.show(); //显示窗口
    // appWindow.close(); //关闭窗口
    appWindow.startDragging(); //开始拖动
    appWindow.restore(); //恢复
    // appWindow.maximizeOrRestore(); //最大化或还原
    // appWindow.maximize(); //最大化
    // appWindow.minimize(); //最小化
    // appWindow.hide(); //隐藏

    var awindows = appWindow.titleBarButtonSize; //标题按钮大小
    var bwindows = appWindow.titleBarHeight; //标题栏高度
    var cwindows = appWindow.borderSize; //边框尺寸
    var dwindows = appWindow.isMaximized; //最大化
    var ewindows = appWindow.isVisible; //是否可见
    var fwindows = appWindow.position; //位置
    var gwindows = appWindow.handle; //处理
    var hwindows = appWindow.rect; //矩形

    print(
        '标题按钮大小:$awindows,标题栏高度:$bwindows,边框尺寸:$cwindows,最大化:$dwindows.可见:$ewindows,位置:$fwindows,处理:$gwindows,矩形:$hwindows');
  });
}

对于 Windows 应用程序

在您的应用程序文件夹中,转到windows\runner\main.cpp并在文件开头添加这两行:

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

对于 macOS 应用程序

在您的应用程序文件夹中,转到macos\runner\MainFlutterWindow.swift并在以下内容之后添加这一行import FlutterMacOS

import FlutterMacOS
import bitsdojo_window_macos // Add this line
 

然后将这一行从:

class MainFlutterWindow: NSWindow {
 

对此:

class MainFlutterWindow: BitsdojoWindow {
 

更改NSWindowBitsdojoWindow在您更改的行下方添加这些行后:

override func bitsdojo_window_configure() -> UInt {
  return BDW_CUSTOM_FRAME | BDW_HIDE_ON_STARTUP
}
 

您的代码现在应如下所示:

class MainFlutterWindow: BitsdojoWindow {
    
  override func bitsdojo_window_configure() -> UInt {
    return BDW_CUSTOM_FRAME | BDW_HIDE_ON_STARTUP
  }
    
  override func awakeFromNib() {
    ... //rest of your code

#

如果您不想使用自定义框架而更喜欢标准窗口标题栏和按钮,则可以BDW_CUSTOM_FRAME从上面的代码中删除该标志。

如果你不想在启动时隐藏窗口,你可以BDW_HIDE_ON_STARTUP从上面的代码中删除标志。

对于 Linux 应用程序

在您的应用程序文件夹中,转到linux\my_application.cc并在文件开头添加以下行:

#include <bitsdojo_window_linux/bitsdojo_window_plugin.h>
 

然后查找这两行:

gtk_window_set_default_size(window, 1280, 720);
gtk_widget_show(GTK_WIDGET(window));
 

并将它们更改为:

auto bdw = bitsdojo_window_from(window);            // <--- add this line
bdw->setCustomFrame(true);                          // <-- add this line
//gtk_window_set_default_size(window, 1280, 720);   // <-- comment this line
gtk_widget_show(GTK_WIDGET(window));
 

如您所见,我们注释了行调用gtk_window_set_default_size并在之前添加了这两行gtk_widget_show(GTK_WIDGET(window));

auto bdw = bitsdojo_window_from(window);
bdw->setCustomFrame(true);
THE END
喜欢就支持一下吧
点赞13 分享