位置的计算公式如下:
代码如下:
var parent_x = mainWindow.getPosition()[0]
var parent_y = mainWindow.getPosition()[1]
var parent_size_x = mainWindow.getSize()[0]
var parent_size_y = mainWindow.getSize()[1]
var settings_size_x = settingsWin.getSize()[0]
var settings_size_y = settingsWin.getSize()[1]
var settings_new_x = parent_x + (parent_size_x - settings_size_x) / 2
var settings_new_y = parent_y + (parent_size_y - settings_size_y) / 2
settingsWin.setPosition(parseInt(settings_new_x), parseInt(settings_new_y), false)
其中mainWindow是父窗口,settingsWin是子窗口,当从父窗口打开子窗口时,无论父窗口位于屏幕的何处,打开的子窗口都是位于父窗口的正中间,而不是屏幕的正中间(若未设置,子窗口默认位于屏幕的正中间)。
此外,应该在创建窗口的时候设置窗口的位置,而不是页面加载时创建。
设置完之后,效果如下: