如何使用 appJar 获取屏幕宽度和高度?
How can I get the screen width and height using appJar?
有没有办法利用appJar
本身获取屏幕的高宽
Alternativley 因为 appJar
是 tkinter
的包装器,我有没有办法创建一个 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.topLevel
在 gui
中。
或者,您可以引用更漂亮的 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()
有没有办法利用appJar
本身获取屏幕的高宽
Alternativley 因为 appJar
是 tkinter
的包装器,我有没有办法创建一个 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.topLevel
在 gui
中。
或者,您可以引用更漂亮的 self.appWindow
,即 self.topLevel
.
为了让所有事情都清楚 - 只需将一些 "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()