2017-09-25 1 views
1

Gibt es eine Möglichkeit, appJar selbst zu verwenden, um die Bildschirmhöhe und -breite zu erhalten.Wie bekomme ich die Bildschirmbreite und -höhe mit appJar?

Alternativley seit appJar ist ein Wrapper für tkinter ist es eine Möglichkeit für mich eine Tk() Instanz erstellen den Code unten nutzen ich überall, während Forschung gesehen haben verwendet:

import tkinter 

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

ich dies tun möchte, so Ich kann diese Größen verwenden, um Fenstergrößen später mit der Methode .setGeometry() einzustellen, z

# Fullscreen 
app.setGeometry(width, height) 

oder:

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

oder:

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

Antwort

1

Da appJar ist nur ein Wrapper über tkinter, müssen Sie einen Verweis auf root/master Instanz Tk(), die als self.topLevel in gui gespeichert. Alternativ können Sie einen Verweis auf eine schönere self.appWindow, die "Kind" Leinwand von self.topLevel ist.

Um alle Dinge klar zu machen - fügen Sie einfach einige "Abkürzungen" zu gewünschten Methoden einer geerbten Klasse hinzu!

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() 
0

Glücklicherweise appJar ermöglicht es Ihnen, Tk() Instanz zu erstellen. So konnte ich mithilfe der Funktionen eine Instanz erstellen, um die Dimensionen abzurufen und die dann nicht benötigte Instanz zu zerstören.

# 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() 
Verwandte Themen