Git Product home page Git Product logo

Comments (7)

Kamran496 avatar Kamran496 commented on June 5, 2024 1

@Akascape

Thank you for the solution. Using .after as you've described above does indeed produce the correct output.

Another way to get correct output is .update() before calling .geometry(), .winfo_height() or .winfo_width().

See below Comment.

from customtkinter.

Akascape avatar Akascape commented on June 5, 2024

@Kamran496 Have you tried winfo_reqwidth() and winfo_reqheight()?

from customtkinter.

Kamran496 avatar Kamran496 commented on June 5, 2024

@Kamran496 Have you tried winfo_reqwidth() and winfo_reqheight()?

@Akascape Same result, at least for me.

from customtkinter.

Akascape avatar Akascape commented on June 5, 2024

@Kamran496 Remove this line:

print(f".geometry() -> {root.geometry()}")

from customtkinter.

Kamran496 avatar Kamran496 commented on June 5, 2024

@Akascape

Still same result.

Code

import customtkinter

root = customtkinter.CTk()

print(f".width() -> {root.winfo_reqwidth()}")
print(f".height() -> {root.winfo_reqheight()}\n")

width = 500
height = 500
root.geometry(f"{width}x{height}")

print(f".width() -> {root.winfo_reqwidth()}")
print(f".height() -> {root.winfo_reqheight()}")

Output

.width() -> 200
.height() -> 200

.width() -> 200
.height() -> 200

from customtkinter.

Akascape avatar Akascape commented on June 5, 2024

@Kamran496 Maybe you should call them after initialising the app. Like using .after method :

root.after(500, lambda: print(f".width() -> {root.winfo_width()}"))

from customtkinter.

Kamran496 avatar Kamran496 commented on June 5, 2024

Code

import customtkinter

root = customtkinter.CTk()

print(f".geometry() -> {root.geometry()}")
print(f".width() -> {root.winfo_reqwidth()}")
print(f".height() -> {root.winfo_reqheight()}\n")

width = 500
height = 500
root.geometry(f"{width}x{height}")
root.update()

print(f".geometry() -> {root.geometry()}")
print(f".width() -> {root.winfo_width()}")
print(f".height() -> {root.winfo_height()}")

Output

.geometry() -> 200x200+208+208
.width() -> 200
.height() -> 200

.geometry() -> 500x500+208+208
.width() -> 500
.height() -> 500

from customtkinter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.