代码之家  ›  专栏  ›  技术社区  ›  joshuatvernon imotov

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

  •  1
  • joshuatvernon imotov  · 技术社区  · 7 年前

    有没有办法使用 appJar 自身获取屏幕高度和宽度。

    Alternativley自 tkinter 我有没有办法创建一个 Tk() 例如,在研究过程中,我看到到处都在使用以下代码:

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

    我想这样做,这样我可以使用这些尺寸来设置窗口大小稍后与 .setGeometry() 方法,例如。

    # Fullscreen
    app.setGeometry(width, height)
    

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

    或:

    # Vertical halfscren
    app.setGeometry(width, int(height / 2))
    
    2 回复  |  直到 7 年前
        1
  •  2
  •   CommonSense    7 年前

    appJar 只是一个包裹 tkinter ,您需要参考 root / master 的实例 Tk() self.topLevel 在里面 gui . 或者,你可以参考更漂亮的 self.appWindow 自己顶级 .

    为了让所有事情都清楚,只需为继承类的所需方法添加一些“快捷方式”!

    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()
    
        2
  •  0
  •   joshuatvernon imotov    7 年前

    幸运地 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()