python - Hvorfor gør Tkinter kvaliteten meget værre på vinduer?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har udviklet en python app med Tkinter på en Mac. Det drejer sig om former og lærredstegninger. På Mac'en ser det godt ud. Men på min Dell laptop (4K skærm og kraftigere end min Mac) vises Tkinter Ui meget pixelated og visse elementer er placeret lidt anderledes. Hvad er dette problem kendt som, og hvad kan jeg gøre for at gøre Tkinter bedre på Dell Windows 10 eller andre platforme generelt?
Her er et skærmbillede af samme del af brugergrænsefladen (viser form og lærredstegning) ...


Windows (dårlige)
Indtast billedbeskrivelse her [2]


Mac (normal)


Indtast billedbeskrivelse her [3]

Bedste reference


Indtast billedbeskrivelse her [4]


Forskellene i displayet for den samme applikation skyldes forskelle i at gøre motorer, der anvendes af hvert operativsystem.


Dette er dækket i en Pakt pub ebook kaldet Tkinter GUI Application Development Blueprints


passage om dette emne til rådighed her. [5]


Det kan være en smerte at gøre, men det ligner den mest almindelige løsning, fordi dette er at registrere dit miljø og skrive uafhængige stilarter ved hjælp af ekstern valgdatabase
mere information er tilgængelig i dokumentationen her. [6]

Andre referencer 1


Antialiasing er kun aktiveret for Tkinter lærredobjekt i OSX. Du kan få aggDraw lib: http://effbot.org/zone/tkinter-aggdraw.htm som en løsning, men ellers får du skæve linjer, når du prøver at tegne på et lærred. Fonter skal dog være anti-aliased på alle større platforme. [7]

Andre referencer 2


Overvej løsningen af ​​MAC som 1366x768 (forventet). Antag at du laver din applikationsvinduestørrelse som 683x384, hvilket svarer til (1366/2 x 768/2).


Når applikationen vil blive kørt på en 4k Display, vil den vise dimensionerne som 683x384 for hovedvinduet, men dets dimensioner på 4k vil være 4k/2.


Så hvad du kan gøre det, skriv et generelt program med variable dimensioner af skærme, så det justerer vinduets størrelse efter skærmstørrelsen.


For flere detaljer henvises til https://www.tutorialspoint.com/python3/python\_gui\_programming.htm[8]


Håber dette vil hjælpe.