0

我正在尝试重新设计我的应用程序。在以前的版本('旧')中,我使用纯 tkinter 和 python。在新版本中,我决定创建现代 GUI。为此,我使用 Figma 来设计我的 UI,而不是使用 tkinter 设计将其转换为 python 代码,然后我将其作为普通应用程序运行。

在此处输入图像描述

目前在 Figma 中设计的新 GUI 的主要问题是我不知道如何创建不同的子页面以及如何在它们之间跳转。例如,我想单击。“DODAJ”,然后我应该跳转到另一个子页面。如何将此分页添加到 Figma 生成的应用程序中?也许我应该用其他语言设计新的用户界面?如果是,应该是什么语言?

# 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


OUTPUT_PATH = Path(__file__).parent
ASSETS_PATH = OUTPUT_PATH / Path("./assets")


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


window = Tk()

window.geometry("1440x1024")
window.configure(bg = "#FFFFFF")


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

canvas.place(x = 0, y = 0)
canvas.create_rectangle(
    0.0,
    0.0,
    1440.0,
    1011.0,
    fill="#1D1D30",
    outline="")

canvas.create_text(
    856.0,
    402.0,
    anchor="nw",
    text="Nowe gui",
    fill="#FFFFFF",
    font=("RedHatDisplay Regular", 36 * -1)
)

canvas.create_text(
    896.0,
    364.0,
    anchor="nw",
    text="1.0.0",
    fill="#FFFFFF",
    font=("RedHatDisplay Regular", 36 * -1)
)

canvas.create_text(
    725.0,
    256.0,
    anchor="nw",
    text="OSTATNIE ZMIANY",
    fill="#FFFFFF",
    font=("RedHatDisplay Regular", 48 * -1)
)

canvas.create_text(
    630.0,
    79.0,
    anchor="nw",
    text="XXX Application",
    fill="#FFFFFF",
    font=("RedHatDisplay Regular", 64 * -1)
)

canvas.create_rectangle(
    0.0,
    0.0,
    391.0,
    1011.0,
    fill="#282646",
    outline="")

canvas.create_text(
    94.0,
    921.0,
    anchor="nw",
    text="USTAWIENIA",
    fill="#FFFFFF",
    font=("RedHatDisplay Regular", 36 * -1)
)

canvas.create_text(
    88.0,
    822.0,
    anchor="nw",
    text="AUTO MODE",
    fill="#FFFFFF",
    font=("RedHatDisplay Regular", 36 * -1)
)

canvas.create_text(
    16.0,
    723.0,
    anchor="nw",
    text="SPRAWD� WA�NO��",
    fill="#FFFFFF",
    font=("RedHatDisplay Regular", 36 * -1)
)

canvas.create_text(
    61.0,
    624.0,
    anchor="nw",
    text="EDYTUJ / USU�",
    fill="#FFFFFF",
    font=("RedHatDisplay Regular", 36 * -1)
)

canvas.create_text(
    98.0,
    525.0,
    anchor="nw",
    text="WYSZUKAJ ",
    fill="#FFFFFF",
    font=("RedHatDisplay Regular", 36 * -1)
)

canvas.create_text(
    132.0,
    426.0,
    anchor="nw",
    text="DODAJ ",
    fill="#FFFFFF",
    font=("RedHatDisplay Regular", 36 * -1)
)

canvas.create_text(
    31.0,
    327.0,
    anchor="nw",
    text="WSZYSTKIE POLISY",
    fill="#FFFFFF",
    font=("RedHatDisplay Regular", 36 * -1)
)

canvas.create_rectangle(
    12.0,
    206.0,
    391.0,
    295.0,
    fill="#282746",
    outline="")

button_image_1 = PhotoImage(
    file=relative_to_assets("button_1.png"))
button_1 = Button(
    image=button_image_1,
    borderwidth=0,
    highlightthickness=0,
    command=lambda: print("button_1 clicked"),
    relief="flat"
)
button_1.place(
    x=18.0,
    y=212.0,
    width=373.0,
    height=76.0
)

image_image_1 = PhotoImage(
    file=relative_to_assets("image_1.png"))
image_1 = canvas.create_image(
    195.0,
    121.0,
    image=image_image_1
)
window.resizable(False, False)
window.mainloop()

这就是单击 DODAJ 后新输入屏幕的外观。我已经将它与 Figma 中的叠加连接起来,但我认为它不适用于 tkinter 设计师。只有第一个屏幕正在创建。 在此处输入图像描述

4

1 回答 1

0

为新窗口或页面创建一个新文件,n 在当前文件中使用 import 关键字导入该文件。例如:mainscreen.py 在此代码中有主屏幕,您需要dodaj.py使用导入功能导入文件

def dodaj():
    import dodaj

将此命令用于 mainscreen.py 中的 dodaj 按钮,它将起作用!

于 2021-11-21T14:52:09.977 回答