Appearance
BrowserWindow
创建一个窗口,窗口可以通过不同的配置实现不同的风格,样式,内容
在创建窗口时,一般要传入窗口的内容,是一个 vue 组件,将 vue 组件引入之后,直接传递给创建窗口的参数,之后使用窗口的 show 方法,会将引入的 vue 文件作为窗口的内容,显示在窗口中
在窗口内容中获取 browserWindow
通过 inject 注入 browserWindow 实例
ts
import { BrowserWindow } from 'vtron';
let browserWindow = inject<BrowserWindow>('browserWindow');
在窗口内容中获取 System
通过 inject 注入 system 实例
ts
import { System } from 'vtron';
const sys = inject<System>('system');
constructor
type:
ts
constructor(option:{
title: string
content: ReturnType<typeof defineComponent> | string,
config?: any
icon: string
width: number
height: number
x: number
y: number
radius: number
center: boolean
resizable: boolean
minimizable: boolean
frame: boolean
fullscreen: boolean
alwaysOnTop: boolean
skipTaskbar: boolean
backgroundColor: string
textColor: string;
menubarButtonColor: string;
fullDragable?: boolean;
})
BrowserWindow 是 vtron 中创建窗口的类,它可以通过传入不同的构建参数来定制化窗口的外观和行为。在本文档中,我们将介绍 BrowserWindow 构建参数的各个属性和用法,以便您更好地了解如何使用它们来创建您的自定义窗口。
ts
import ContentVue from './content.vue';
const win = new BrowserWindow({
title: 'test',
content: ContentVue,
icon: 'test',
width: 100,
height: 100,
x: 100,
y: 100,
center: true,
resizable: true,
});
constructor option
option 对象包含 BrowserWindow 构建参数的各个属性。以下是这些属性的详细说明。
title
Type: string
窗口的标题。
content
Type: ReturnType < typeof defineComponent > | string
窗口显示的内容。可以传入一个 Vue 组件或者一个网址。
config
Type: any
窗口的配置对象。这个对象会被传递给窗口渲染进程,可以在窗口内部使用。
使用方法:
ts
const win = new BrowserWindow({
title: 'test',
content: ContentVue,
config: {
name: 'test',
age: 18,
},
});
在窗口内部使用:
ts
// ContentVue.vue
import { BrowserWindow } from 'vtron';
const browserWindow = inject<BrowserWindow>('browserWindow')!;
console.log(browserWindow.config.name);
console.log(browserWindow.config.age);
icon
Type: string
窗口的图标路径。
width
Type: number
窗口的宽度,以像素为单位。
height
Type: number
窗口的高度,以像素为单位。
x
Type: number
窗口的横坐标,以像素为单位。
y
Type: number
窗口的纵坐标,以像素为单位。
radius
Type: number
窗口的圆角半径,以像素为单位。
center
Type: boolean
是否将窗口居中显示。
resizable
Type: boolean
窗口是否可以调整大小。
frame
Type: boolean
是否显示窗口边框。
fullscreen
Type: boolean
窗口是否全屏显示。
minimizable
Type: boolean
窗口是否可以最小化。
alwaysOnTop
Type: boolean
窗口是否总在顶部显示。
skipTaskbar
Type: boolean
是否在任务栏中隐藏窗口。
backgroundColor
Type: string
窗口的背景颜色。
textColor
Type: string
窗口的文字颜色。
menubarButtonColor
Type: string
窗口的菜单栏按钮颜色。
fullDragable
Type: boolean
是否允许窗口内部全部为可拖动区域。
id
type:
ts
id: number;
The id of the window.
usage:
ts
const win = new BrowserWindow();
console.log(win.id);
show
type:
ts
show():void
显示窗口,调用这个方法后,窗口会显示在桌面上
usage:
ts
const win = new BrowserWindow();
win.show();
close
关闭窗口
ts
close():void
usage:
ts
const win = new BrowserWindow();
win.close();
destroy
目前和 close 方法一样,关闭窗口
type:
ts
destroy():void
usage:
ts
const win = new BrowserWindow();
win.destroy();
on
监听一个事件
ts
on(event: string, callback: Function)
目前可以监听以下事件
show: 窗口打开时触发 // 只能在外部监听
close: 窗口关闭时触发
resize: 窗口缩放时
move: 窗口移动时
state: 窗口状态改变时
minimize: 窗口最小化时
maximize: 窗口最大化时
unmaximize: 窗口取消最大化时
close: 窗口关闭时
emit
触发一个事件
ts
emit(event: string, ...args: any[])
moveTop
把窗口置顶
会触发moveTop
事件
ts
moveTop():void
isDisable
type:
ts
isDisable():boolean
返回窗口是否被禁用
窗口被禁用时,无法点击,无法拖动
usage:
ts
const win = new BrowserWindow();
console.log(win.isDisable());
isVisible
type:
ts
isVisible():boolean
返回窗口是否可视
usage:
ts
const win = new BrowserWindow();
console.log(win.isVisible());
isDestroyed
type:
ts
isDestroyed():boolean
返回窗口是否已经被销毁
usage:
ts
const win = new BrowserWindow();
console.log(win.isDestroyed());
isMaximized
type:
ts
isMaximized():boolean
返回窗口是否最大化
usage:
ts
const win = new BrowserWindow();
console.log(win.isMaximized());
isMaximizable
type:
ts
isMaximizable():boolean
返回窗口是否可以最大化
usage:
ts
const win = new BrowserWindow();
console.log(win.isMaximizable());
isMinimized
type:
ts
isMinimized():boolean
返回窗口是否最小化
usage:
ts
const win = new BrowserWindow();
console.log(win.isMinimized());
isMinimizable
type:
ts
isMinimizable():boolean
返回窗口是否可以最小化
usage:
ts
const win = new BrowserWindow();
console.log(win.isMinimizable());
isNormal
type:
ts
isNormal():boolean
返回窗口是否处于正常状态,即不是最大化或最小化
usage:
ts
const win = new BrowserWindow();
console.log(win.isNormal());
isResizable
type:
ts
isResizable():boolean
返回窗口是否可以调整大小
usage:
ts
const win = new BrowserWindow();
console.log(win.isResizable());
isFullScreen
type:
ts
isFullScreen():boolean
返回窗口是否全屏
usage:
ts
const win = new BrowserWindow();
console.log(win.isFullScreen());
center
type:
ts
center():void
把窗口移动到屏幕中心
usage:
ts
const win = new BrowserWindow();
win.center();
restore
把窗口从最小化状态恢复到之前的状态
type:
ts
restore():void
usage:
ts
const win = new BrowserWindow();
win.restore();
getSize
返回窗口的大小
type:
ts
getSize():[number,number]
usage:
ts
const win = new BrowserWindow();
console.log(win.getSize());
getTitle
返回窗口的标题
type:
ts
getTitle():string
usage:
ts
const win = new BrowserWindow();
console.log(win.getTitle());
getPosition
返回窗口的位置
x: 横坐标 y: 纵坐标
type:
ts
getPosition():[x,y]
usage:
ts
const win = new BrowserWindow();
console.log(win.getPosition());
maximize
最大化窗口
type:
ts
maximize():void
usage:
ts
const win = new BrowserWindow();
win.maximize();
unmaximize
取消最大化窗口
type:
ts
unmaximize():void
usage:
ts
const win = new BrowserWindow();
win.unmaximize();
minimize
type:
ts
minimize():void
最小化窗口
usage:
ts
const win = new BrowserWindow();
win.minimize();
setFullScreen
设置窗口全屏
type:
ts
setFullScreen(fullscreen:boolean):void
usage:
ts
const win = new BrowserWindow();
win.setFullScreen(true); // true 设置为全屏,false 取消全屏,状态设置为normal
setSize
设置窗口的大小
type:
ts
setSize(width:number,height:number):void
usage:
ts
const win = new BrowserWindow();
win.setSize(100, 100);
setTitle
设置窗口的标题
type:
ts
setTitle(title:string):void
usage:
ts
const win = new BrowserWindow();
win.setTitle('title');
setPosition
type:
ts
setPosition(x:number,y:number):void
设置窗口的位置
usage:
ts
const win = new BrowserWindow();
win.setPosition(100, 100);
setDisable
type:
ts
setDisable(disable:boolean):void
设置窗口是否禁用
窗口被禁用时,无法点击,无法拖动
setResizable
type:
ts
setResizable(resizable:boolean):void
设置窗口是否可以调整大小
usage:
ts
const win = new BrowserWindow();
win.setResizable(true);
setMaximizable
type:
ts
setMaximizable(maximizable:boolean):void
设置窗口是否可以最大化
usage:
ts
const win = new BrowserWindow();
win.setMaximizable(true);
setMinimizable
type:
ts
setMinimizable(minimizable:boolean):void
设置窗口是否可以最小化
usage:
ts
const win = new BrowserWindow();
win.setMinimizable(true);
setBackgroundColor
type:
ts
setBackgroundColor(color:string):void
设置窗口的背景颜色
usage:
ts
const win = new BrowserWindow();
win.setBackgroundColor('#901');
setTextColor
type:
ts
setTextColor(color:string):void
设置窗口的文字颜色
usage:
ts
const win = new BrowserWindow();
win.setTextColor('#901');
setFrame
type:
ts
setFrame(frame:boolean):void
设置窗口是否显示边框
usage:
ts
const win = new BrowserWindow();
win.setFrame(true);
setAlwaysOnTop
type:
ts
setAlwaysOnTop(alwaysOnTop:boolean):void
设置窗口是否总在顶部显示
usage:
ts
const win = new BrowserWindow();
win.setAlwaysOnTop(true);
setMenubarButtonColor
type:
ts
setMenubarButtonColor(color:string):void
设置窗口的菜单栏按钮颜色
usage:
ts
const win = new BrowserWindow();
win.setMenubarButtonColor('#901');