ParthJadhav / Tkinter-Designer

An easy and fast way to create a Python GUI 🐍
BSD 3-Clause "New" or "Revised" License
8.63k stars 794 forks source link

Report bug #352

Closed sfh0345 closed 8 months ago

sfh0345 commented 9 months ago

This is my error, could you fix this? or is this too less of information?

File "C:\Users\Sande\Tkinter-Designer\tkdesigner\designer.py", line 21, in to_code frame = Frame(f, self.figma_file, self.output_path, self.frameCounter) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Sande\Tkinter-Designer\tkdesigner\figma\frame.py", line 29, in init self.elements = [ ^ TypeError: 'NoneType' object is not iterable

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1520.0_x64qbz5n2kfra8p0\Lib\tkinter\init.py", line 1948, in call__ return self.func(*args) ^^^^^^^^^^^^^^^^ File "C:\Users\Sande\Tkinter-Designer\gui\gui.py", line 72, in btn_clicked designer.design() File "C:\Users\Sande\Tkinter-Designer\tkdesigner\designer.py", line 32, in design code = self.to_code() ^^^^^^^^^^^^^^ File "C:\Users\Sande\Tkinter-Designer\tkdesigner\designer.py", line 23, in to_code raise Exception("Frame not found in figma file or is empty") Exception: Frame not found in figma file or is empty

sfh0345 commented 9 months ago

I did not use a frame, only rectangle, but my rounded boxes are not round anymore

image

this is my design

image
sfh0345 commented 9 months ago

and how do you add the images back? I love your work btw

code:

This file was generated by the Tkinter Designer by Parth Jadhav

https://github.com/ParthJadhav/Tkinter-Designer

from pathlib import Path

from tkinter import *

Explicit imports to satisfy Flake8

from tkinter import Tk, Canvas, Entry, Text, Button, PhotoImage from tkinter import font import tkinter as tk import random import requests

OUTPUT_PATH = Path(file).parent ASSETS_PATH = OUTPUT_PATH / Path(r"C:\Users\Sande\OneDrive\Bureaublad\build\assets\frame0")

root = tk.Tk()

canvas = tk.Canvas(root, width=400, height=100)

canvas.pack()

window = Tk()

Load the Rubik font from the file

font_path = "/assets/rubik.ttf" # Adjust the path if needed

rubik_font_h1 = font.Font(family="Rubik semibold", size=27) rubik_font_h1.actual() rubik_font_h2 = font.Font(family="Rubik Regular", size=20) rubik_font_h2.actual() rubik_font_h3 = font.Font(family="Rubik Regular", size=13) rubik_font_h3.actual() rubik_font_h4 = font.Font(family="Rubik Light", size=16) rubik_font_h4.actual()

def relative_to_assets(path: str) -> Path: return ASSETS_PATH / Path(path)

window.geometry("687x1037") window.configure(bg = "#FFFFFF")

list_stations = ["Arnhem", "Almere", "Amersfoort", "Almelo", "Alkmaar", "Apeldoorn", "Assen", "Amsterdam", "Boxtel", "Breda", "Dordrecht", "Delft", "Deventer", "Enschede", "Gouda", "Groningen", "Den Haag", "Hengelo", "Haarlem", "Helmond", "Hoorn", "Heerlen", "Den Bosch", "Hilversum", "Leiden", "Lelystad", "Leeuwarden", "Maastricht", "Nijmegen", "Oss", "Roermond", "Roosendaal", "Sittard", "Tilburg", "Utrecht", "Venlo", "Vlissingen", "Zaandam", "Zwolle", "Zutphen"] station = random.choice(list_stations)

Een random station kiezen waar de stationszuil zich bevindt

def get_weather_forecast(city): API_KEY = "404f6ef44205711ecabaf88bcc8e7c83" url = f"http://api.openweathermap.org/data/2.5/weather?q={city},nl&units=metric&lang=nl&appid={API_KEY}"

response = requests.get(url)

if response.status_code == 200:
    weather_data = response.json()
    temperature = weather_data['main']['temp']
    description = weather_data['weather'][0]['description']
    return temperature, description
else:
    print("Fout:", response.status_code)

city = station temperature, description = get_weather_forecast(city) rounded_temperature = round(temperature, 0)

canvas = Canvas( window, bg = "#FFFFFF", height = 1037, width = 687, bd = 0, highlightthickness = 0, relief = "ridge" )

canvas.place(x = 0, y = 0) canvas.create_rectangle( 0.0, 0.0, 687.0, 1079.0, fill="#E4E4E4", outline="")

canvas.create_rectangle( 92.0, 130.0, 594.0, 501.0, fill="#003082", outline="")

canvas.create_text( 49.0, 24.0, anchor="nw", text=f"Welkom op station NS {station}", fill="#0063D3", font=rubik_font_h1 )

canvas.create_text( 132.0, 182.0, anchor="nw", text=f"{rounded_temperature:.0f}°C", fill="#FFFFFF", font=rubik_font_h2 )

canvas.create_text( 132.0, 155.0, anchor="nw", text=f"{station}, Nederlands", fill="#DFDFDF", font=rubik_font_h3 )

canvas.create_text( 478.0, 187.0, anchor="nw", text="Sunny", fill="#DFDFDF", font=rubik_font_h2 )

canvas.create_rectangle( 132.0, 235.0, 556.0, 240.0, fill="#FFC917", outline="")

canvas.create_rectangle( 42.0, 523.0, 645.0, 530.0, fill="#003082", outline="")

canvas.create_text( 132.0, 278.0, anchor="nw", text="Today", fill="#FFFFFF", font=("RubikRoman Regular", 16 * -1) )

canvas.create_text( 496.0, 266.0, anchor="nw", text="26℃", fill="#FFFFFF", font=rubik_font_h4 )

canvas.create_text( 132.0, 254.0, anchor="nw", text="2 Oktober ", fill="#C3C3C3", font=rubik_font_h3 )

canvas.create_text( 132.0, 334.0, anchor="nw", text="Tomorrow", fill="#FFFFFF", font=("RubikRoman Regular", 16 * -1) )

canvas.create_text( 496.0, 322.0, anchor="nw", text="23℃", fill="#FFFFFF", font=("RubikRoman Regular", 20 * -1) )

canvas.create_text( 132.0, 310.0, anchor="nw", text="3 Oktober ", fill="#C3C3C3", font=rubik_font_h3)

canvas.create_text( 132.0, 390.0, anchor="nw", text="Woensdag", fill="#FFFFFF", font=("RubikRoman Regular", 16 * -1) )

canvas.create_text( 496.0, 378.0, anchor="nw", text="24℃", fill="#FFFFFF", font=("RubikRoman Regular", 20 * -1) )

canvas.create_text( 132.0, 366.0, anchor="nw", text="4 Oktober ", fill="#C3C3C3", font=rubik_font_h3)

canvas.create_text( 132.0, 446.0, anchor="nw", text="Donderdag", fill="#FFFFFF", font=("RubikRoman Regular", 16 * -1) )

canvas.create_text( 496.0, 434.0, anchor="nw", text="21℃", fill="#FFFFFF", font=("RubikRoman Regular", 20 * -1) )

canvas.create_text( 132.0, 422.0, anchor="nw", text="5 Oktober ", fill="#C3C3C3", font=rubik_font_h3)

canvas.create_text( 63.0, 538.0, anchor="nw", text="Hier vind je de feedback van andere reizigers", fill="#0063D3", font=rubik_font_h2 )

canvas.create_rectangle( 53.0, 580.0, 320.0, 703.0, fill="#003082", outline="")

canvas.create_text( 65.0, 591.0, anchor="nw", text="Naam: Sander", fill="#FFFFFF", font=("RubikRoman Medium", 14 * -1) )

canvas.create_rectangle( 65.0, 613.0, 307.0, 617.0, fill="#FFC917", outline="")

canvas.create_text( 65.0, 621.0, anchor="nw", text="Feedback bericht staat hier ik heb heel veel feedback", fill="#FFFFFF", font=("RubikRoman Medium", 12 -1) ) canvas.create_text( 205.0, 681.0, anchor="nw", text="2 Oktober om 22:41", fill="#C7C7C7", font=("RubikRoman Medium", 11 -1) )

canvas.create_rectangle( 366.0, 580.0, 633.0, 703.0, fill="#003082", outline="" )

canvas.create_text( 378.0, 592.0, anchor="nw", text="Naam: Sander", fill="#FFFFFF", font=("RubikRoman Medium", 14 * -1) )

canvas.create_rectangle( 378.0, 614.0, 620.0, 618.0, fill="#FFC917", outline="")

canvas.create_text( 378.0, 622.0, anchor="nw", text="Feedback bericht staat hier ik heb heel veel feedback", fill="#FFFFFF", font=("RubikRoman Medium", 12 * -1) )

canvas.create_text( 518.0, 682.0, anchor="nw", text="2 Oktober om 22:41", fill="#C7C7C7", font=("RubikRoman Medium", 11 * -1) )

canvas.create_rectangle( 53.0, 728.0, 320.0, 851.0, fill="#003082", outline="")

canvas.create_text( 65.0, 739.0, anchor="nw", text="Naam: Sander", fill="#FFFFFF", font=("RubikRoman Medium", 14 * -1) )

canvas.create_rectangle( 65.0, 761.0, 307.0, 765.0, fill="#FFC917", outline="")

canvas.create_text( 65.0, 769.0, anchor="nw", text="Feedback bericht staat hier ik heb heel veel feedback", fill="#FFFFFF", font=("RubikRoman Medium", 12 * -1) )

canvas.create_text( 205.0, 829.0, anchor="nw", text="2 Oktober om 22:41", fill="#C7C7C7", font=("RubikRoman Medium", 11 * -1) )

canvas.create_rectangle( 366.0, 728.0, 633.0, 851.0, fill="#003082", outline="")

canvas.create_text( 378.0, 740.0, anchor="nw", text="Naam: Sander", fill="#FFFFFF", font=("RubikRoman Medium", 14 * -1) )

canvas.create_rectangle( 378.0, 762.0, 620.0, 766.0, fill="#FFC917", outline="")

canvas.create_text( 378.0, 770.0, anchor="nw", text="Feedback bericht staat hier ik heb heel veel feedback", fill="#FFFFFF", font=("RubikRoman Medium", 12 * -1) )

canvas.create_text( 518.0, 830.0, anchor="nw", text="2 Oktober om 22:41", fill="#C7C7C7", font=("RubikRoman Medium", 11 * -1) )

canvas.create_rectangle( 53.0, 876.0, 320.0, 999.0, fill="#003082", outline="")

canvas.create_text( 65.0, 887.0, anchor="nw", text="Naam: Sander", fill="#FFFFFF", font=("RubikRoman Medium", 14 * -1) )

canvas.create_rectangle( 65.0, 909.0, 307.0, 913.0, fill="#FFC917", outline="")

canvas.create_text( 65.0, 917.0, anchor="nw", text="Feedback bericht staat hier ik heb heel veel feedback", fill="#FFFFFF", font=("RubikRoman Medium", 12 * -1) )

canvas.create_text( 205.0, 977.0, anchor="nw", text="2 Oktober om 22:41", fill="#C7C7C7", font=("RubikRoman Medium", 11 * -1) )

canvas.create_rectangle( 366.0, 876.0, 633.0, 999.0, fill="#003082", outline="")

canvas.create_text( 378.0, 888.0, anchor="nw", text="Naam: Sander", fill="#FFFFFF", font=("RubikRoman Medium", 14 * -1) )

canvas.create_rectangle( 378.0, 910.0, 620.0, 914.0, fill="#FFC917", outline="")

canvas.create_text( 378.0, 918.0, anchor="nw", text="Feedback bericht staat hier ik heb heel veel feedback", fill="#FFFFFF", font=("RubikRoman Medium", 12 * -1) )

canvas.create_text( 518.0, 978.0, anchor="nw", text="2 Oktober om 22:41", fill="#C7C7C7", font=("RubikRoman Medium", 11 * -1) )

canvas.create_text( 49.0, 69.0, anchor="nw", text="Hier vind je de weersverwachting en feedback", fill="#4D4D4D", font=("RubikRoman Medium", 19 * -1) )

canvas.create_rectangle( 431.0, 184.0, 472.0, 216.0, fill="#FFFFFF", outline="")

canvas.create_rectangle( 449.0, 259.0, 488.0, 298.0, fill="#FFFFFF", outline="")

canvas.create_rectangle( 449.0, 315.0, 488.0, 354.0, fill="#FFFFFF", outline="")

canvas.create_rectangle( 449.0, 371.0, 488.0, 410.0, fill="#FFFFFF", outline="")

canvas.create_rectangle( 449.0, 427.0, 488.0, 466.0, fill="#FFFFFF", outline="") window.resizable(False, False) window.mainloop()

dim5x commented 9 months ago

Not reproducible code: without assets, without image. It would be nice to format all the code like 'response - requests' fragment.

sfh0345 commented 8 months ago

fix: make your reqtangles a entry. It creates a image in assets and places the curved ones over it.