繁体   English   中英

如何将 window 安装到其内容并将其置于 Sciter 的屏幕中央?

[英]How to fit a window to its contents and center it on the screen in Sciter?

第一次尝试 GUI 软件时,我要做的第一件事是将 window 居中并使其适合其内容。 我个人认为这应该尽可能简单,并且最好在官方文档中进行解释。

在我看来,将一个程序的主要 window 在屏幕上居中的能力是任何 GUI 库的一个非常基本的要求。

但是,我无法在官方文档中找到这些说明。

我不记得我在哪里找到了作者的说明,但这里是使用 TIScript 的“香草”Sciter:

const w = self.intrinsicWidthMax();
const h = self.intrinsicHeight();
const (sw, sh) = view.screenBox(#frame, #dimension);
view.move((sw / 2) - (w / 2), (sh / 2) - (h / 2), w, h, true);

#frame在这里指的是整个屏幕或监视器。 #dimension指定应返回其widthheight (还有其他符号用于返回屏幕某些方面的坐标)。

view.move是一个不幸命名的重载方法,因为除了移动它之外,它还允许调整 window 的大小。 最后一个 boolean 参数指定 window 帧和标题的大小是否应被视为总 window 大小的一部分。

在官方示例中,建议将其放在function self.ready() {... }中,但将其放在主脚本文件的顶部没有遇到任何问题。

这是 Sciter.JS 的 JavaScript 端口:

// https://github.com/c-smile/sciter-js-sdk/discussions/39#discussioncomment-377697
const [ _, w ] = document.state.contentWidths();
const h = document.state.contentHeight(w);
const [ sw, sh ] = Window.this.screenBox('frame', 'dimension');
Window.this.move((sw - w) / 2, (sh - h) / 2, w, h, true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM