如何在python中创建此特定的接口类型?

弗里兹

我想创建此接口类型:https : //prnt.sc/oqprzp

我在编程方面的知识不是最好的,并且我在只使用少量JavaScript之前也没有使用python。我对任何有关如何创建整个接口类型而不是其中的计算的建议感到满意。非常感谢您的帮助。(我来自德国,这就是为什么代码中包含一些德语单词的原因。我希望它们不会造成麻烦。)

我试图查找基础知识以及其中的一些内容,但是在这里找不到可以帮助我的内容。正如您在以下代码中看到的那样,我只做了按钮,它们按预期工作。我也不确定如何将它们放入屏幕截图中的右下角。

from tkinter import *

#Erstellung des GUI
GUI = Tk()
GUI.title("GUI - Querschnittswerte berechnen eines Trapezes")
GUI.geometry("1000x600")

#Erstellung der Buttons
class Buttons:
    def __init__(self, master):
        frame = Frame(master)
        frame.pack()

        self.calculateButton = Button(frame, text = "Querschnittswerte berechnen", command=self.printMessage)
        self.calculateButton.pack(side=LEFT)



        self.printButton = Button(frame, text="Zusammenfassung/Drucken", command=self.printMessage)
        self.printButton.pack(side=LEFT)



        self.quitButton = Button(frame, text="Beenden", command=frame.quit)
        self.quitButton.pack(side=LEFT)



    def printMessage(self):
        print("Wird ausgeführt... Fehler entstanden und kann dadurch nicht ausgeführt werden.")


b = Buttons(GUI)
GUI.mainloop()
布莱恩·奥克利(Bryan Oakley)

除了有条不紊地分析布局以查看是否可以发现某些图案外,没有其他特殊技术。

例如,我看到一些非常清晰的模式:

  1. 底部有一排按钮
  2. 在按钮上方,UI分为左半部分和右半部分
  3. 左半部分分为两个相等的部分
  4. 右半部分是带有两个标签的笔记本
  5. 每个选项卡包含以网格排列的一系列输入字段。

入门

我将从为每个部分创建框架开始。在最初的开发过程中,我将为它们提供独特的颜色,以使其易于可视化,并临时给空框架指定尺寸,以使其可见。

另外,我将创建一个函数或类来表示每个部分,以更好地组织代码。

由于最高级别结构的布局相对简单,pack因此可能是布局它们的正确工具。

import tkinter as tk
from tkinter import ttk

class Example():
    def __init__(self):
        self.root = tk.Tk()
        self.root.geometry("800x400")

        left = self.create_left(self.root)
        right = self.create_right(self.root)
        buttons = self.create_buttons(self.root)

        buttons.pack(side="bottom", fill="x")
        left.pack(side="left", fill="both", expand=True)
        right.pack(side="right", fill="both", expand=True)

    def create_left(self, master):
        frame = tk.Frame(master, background="bisque", height=200)

        return frame

    def create_right(self, master):
        frame = tk.Frame(master, background="yellow", height=200)

        return frame

    def create_buttons(self, master):
        frame = tk.Frame(master, background="orange", height=40)

        return frame

example = Example()
tk.mainloop()

这样,您可以运行该程序并使主要部分可视化。您还可以在调整窗口大小时验证这些部分的行为是否正确。

基本布局的屏幕截图

完善UI

接下来,对每个部分重复此过程。例如,通过修改create_right为以下内容,将笔记本添加到右侧部分

def create_right(self, master):
    frame = tk.Frame(master, background="yellow", height=200)

    self.notebook = ttk.Notebook(frame)
    self.notebook.pack(fill="both", expand=True)

    self.tab1 = tk.Frame(self.notebook, background="lightblue")
    self.tab2 = tk.Frame(self.notebook, background="yellow")

    self.notebook.add(self.tab1, text="Eingabe der Profildaten")
    self.notebook.add(self.tab2, text="Querschnittswerte des Profils")

    return frame

当您运行该程序时,某些比例会发生变化,因为您要添加更多的小部件。不用担心,当您在左侧和底部添加小部件时,所有内容都会继续显示。

屏幕截图,包括笔记本标签

现在,使用相同的技术处理左侧。进行修改create_left,如下所示。虽然通常我会用pack在这里,我将使用网格在这个例子,是想证明你可以混合和匹配grid,并pack在不同的部分。

def create_left(self, master):
    frame = tk.Frame(master, background="bisque", height=200)

    lf1 = tk.LabelFrame(frame, borderwidth=2, relief="groove",
                         text="Profildarstellung")
    lf2 = tk.LabelFrame(frame, borderwidth=2, relief="groove",
                         text="Koordinatensystem im Schwerpunkt",)

    lf1.grid(row=0, column=0, sticky="nsew", padx=10, pady=10)
    lf2.grid(row=1, column=0, sticky="nsew", padx=10, pady=10)

    frame.grid_rowconfigure((0,1), weight=1)
    frame.grid_columnconfigure(0, weight=1)

    return frame

带有左侧标签框的屏幕截图

使用类

除了创建函数,您还可以使用类。如果该类继承自Frame,则可以将其与其他tkinter小部件一样对待,以与其他小部件进行布局。例如,create_buttons您可以实例化一个类,而不是调用

class Example():
    def __init__(self):
        ...
        buttons = Buttons(self.root)
        buttons.pack(side="bottom", fill="x")
        ...

然后,创建一个从其他小部件继承的类,以便可以像其他任何小部件一样将其放置在UI中。这就是Frame小部件的目的。

class Buttons(tk.Frame):
    def __init__(self, master):
        tk.Frame.__init__(self, master, background="orange")

        self.calculateButton = ttk.Button(self, text = "Querschnittswerte berechnen")
        self.printButton = ttk.Button(self, text="Zusammenfassung/Drucken")
        self.quitButton = ttk.Button(self, text="Beenden")

        self.quitButton.pack(side="right", padx=4, pady=4)
        self.printButton.pack(side="right", padx=4, pady=4)
        self.calculateButton.pack(side="right", padx=4, pady=4)

屏幕截图,包括按钮

最后步骤

继续每次一次建立您的GUI区域,并进行测试以确保在调整窗口大小时布局保持正确。拥有所有部件后,您可以返回并删除颜色和硬编码的框架大小,以使UI更加美观。

最终屏幕截图

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在该接口类型的对象上调用实现接口的类中的方法?

来自分类Dev

如何创建一个工厂,该工厂根据Java中的接口类型创建类?

来自分类Dev

如何在NEST中索引和搜索接口类型的嵌套属性

来自分类Dev

我们如何在构造函数方法中的 react typescript 中初始化状态,如果它具有特定的接口类型

来自分类Dev

如何在mgo(Go)中将接口类型用作模型?

来自分类Dev

从JavaScript数组创建接口类型列表

来自分类Dev

关于特定接口类型的模板分支

来自分类Dev

值类型如何实现接口类型?

来自分类Dev

如何检查接口类型的联合参数

来自分类Dev

CLR如何加载接口类型?

来自分类Dev

如何使用此特定接口创建setTimeoutAsync?

来自分类Dev

ByteBuddy中的接口类型非法

来自分类Dev

Fortran中的接口类型绑定过程

来自分类Dev

如果接口类型的变量是实现它的特定结构类型,如何检查 Go?

来自分类Dev

如何在结构字段上使用类型切换(当字段属于接口类型时)?

来自分类Dev

如何创建返回不同接口类型和抽象类的通用工厂

来自分类Dev

检查变量是否是打字稿联合中的特定接口类型

来自分类Dev

接口类型推断

来自分类Dev

如何在接口类型的引用上调用Object类的方法?

来自分类Dev

如何在KVM上为Windows 8.1 guest虚拟机更改磁盘接口类型

来自分类Dev

将使用URLClassLoader创建的对象转换为接口类型

来自分类Dev

如何在python类中创建更好的变量接口

来自分类Dev

如何使用显式类实现接口类型

来自分类Dev

如何获取工厂方法的类属性的接口类型

来自分类Dev

如何获取多个联合接口类型的属性的值?

来自分类Dev

如何从接口类型检查属性是否正确?

来自分类Dev

在VBA中强制转换为接口类型

来自分类Dev

解组为接口类型

来自分类Dev

解组接口类型

Related 相关文章

  1. 1

    如何在该接口类型的对象上调用实现接口的类中的方法?

  2. 2

    如何创建一个工厂,该工厂根据Java中的接口类型创建类?

  3. 3

    如何在NEST中索引和搜索接口类型的嵌套属性

  4. 4

    我们如何在构造函数方法中的 react typescript 中初始化状态,如果它具有特定的接口类型

  5. 5

    如何在mgo(Go)中将接口类型用作模型?

  6. 6

    从JavaScript数组创建接口类型列表

  7. 7

    关于特定接口类型的模板分支

  8. 8

    值类型如何实现接口类型?

  9. 9

    如何检查接口类型的联合参数

  10. 10

    CLR如何加载接口类型?

  11. 11

    如何使用此特定接口创建setTimeoutAsync?

  12. 12

    ByteBuddy中的接口类型非法

  13. 13

    Fortran中的接口类型绑定过程

  14. 14

    如果接口类型的变量是实现它的特定结构类型,如何检查 Go?

  15. 15

    如何在结构字段上使用类型切换(当字段属于接口类型时)?

  16. 16

    如何创建返回不同接口类型和抽象类的通用工厂

  17. 17

    检查变量是否是打字稿联合中的特定接口类型

  18. 18

    接口类型推断

  19. 19

    如何在接口类型的引用上调用Object类的方法?

  20. 20

    如何在KVM上为Windows 8.1 guest虚拟机更改磁盘接口类型

  21. 21

    将使用URLClassLoader创建的对象转换为接口类型

  22. 22

    如何在python类中创建更好的变量接口

  23. 23

    如何使用显式类实现接口类型

  24. 24

    如何获取工厂方法的类属性的接口类型

  25. 25

    如何获取多个联合接口类型的属性的值?

  26. 26

    如何从接口类型检查属性是否正确?

  27. 27

    在VBA中强制转换为接口类型

  28. 28

    解组为接口类型

  29. 29

    解组接口类型

热门标签

归档