如何使用 appJar 获取屏幕宽度和高度?

How can I get the screen width and height using appJar?

有没有办法利用appJar本身获取屏幕的高宽

Alternativley 因为 appJartkinter 的包装器,我有没有办法创建一个 Tk() 实例来利用下面的代码,我在研究时看到到处都用过:

import tkinter

root = tkinter.Tk()
width = root.winfo_screenwidth()
height = root.winfo_screenheight()

我想这样做,以便以后可以使用这些尺寸通过 .setGeometry() 方法设置 window 尺寸,例如

# Fullscreen
app.setGeometry(width, height)

或:

# Horizontal halfscreen
app.setGeometry(int(width / 2), height)

或:

# Vertical halfscren
app.setGeometry(width, int(height / 2))

幸运的是,appJar 允许您创建 Tk() 实例。所以我能够使用函数创建一个实例来检索尺寸并销毁当时不需要的实例。

# import appjar
from appJar import appjar

# Create an app instance to get the screen dimensions
root = appjar.Tk()

# Save the screen dimensions
width = root.winfo_screenwidth()
height = root.winfo_screenheight()

# Destroy the app instance after retrieving the screen dimensions
root.destroy()

由于 appJar 只是 tkinter 的包装器,您需要引用 Tk()root/master 实例,它存储为 self.topLevelgui 中。 或者,您可以引用更漂亮的 self.appWindow,即 self.topLevel.

的 "child" canvas

为了让所有事情都清楚 - 只需将一些 "shortcuts" 添加到继承 class!

的所需方法中
import appJar as aJ

class App(aJ.gui):
    def __init__(self, *args, **kwargs):
        aJ.gui.__init__(self, *args, **kwargs)

    def winfo_screenheight(self):
        #   shortcut to height
        #   alternatively return self.topLevel.winfo_screenheight() since topLevel is Tk (root) instance!
        return self.appWindow.winfo_screenheight()

    def winfo_screenwidth(self):
        #   shortcut to width
        #   alternatively return self.topLevel.winfo_screenwidth() since topLevel is Tk (root) instance!
        return self.appWindow.winfo_screenwidth()


app = App('winfo')
height, width = app.winfo_screenheight(), app.winfo_screenwidth()
app.setGeometry(int(width / 2), int(height / 2))
app.addLabel('winfo_height', 'height: %d' % height, 0, 0)
app.addLabel('winfo_width', 'width: %d' % width, 1, 0)
app.go()