Python - Можете ли вы помочь мне сделать класс из фрагмента кода, который я повторяю? - PullRequest
0 голосов
/ 18 марта 2019

Ниже я повторно использую кусок кода, когда устанавливаю переменные instruct1 и instruct2.Вчера я попробовал пару вещей, чтобы сделать урок, но не смог сделать это правильно.Кто-нибудь захочет помочь?Заранее спасибо.

import tkinter as tk
from tkinter import ttk

HEIGHT = 700
WIDTH = 1100

root = tk.Tk()

canvas = tk.Canvas(root, height=HEIGHT, width=WIDTH)
canvas.pack()

frame = tk.Frame(root, bg='#08295e')
frame.place(relx=0.01, rely=0.01, relwidth=0.98, relheight=0.98)

prog_title = tk.Label(frame, text='test program')
prog_title.config(width=30, font=('Eras Medium ITC', 30), bg='#08295e', fg='white', bd=7)
prog_title.pack()

instruct1 = tk.Label(frame, text='Step1: Do step 1', anchor='nw')
instruct1.config(width=30, font=('Microsoft JhengHei Light', 15), bg='#08295e', fg='white')
instruct1.place(relx=0.05, rely=0.1)

instruct2 = tk.Label(frame, text='Step2: Do step 2', anchor='nw')
instruct2.config(width=30, font=('Microsoft JhengHei Light', 15), bg='#08295e', fg='white')
instruct2.place(relx=0.05, rely=0.2)

s = ttk.Style()
s.configure('my.TButton', font=('Microsoft JhengHei Light', 12))

button = ttk.Button(root, text='Create Stuff', style='my.TButton')
button.place(relx=0.5, rely=0.3, relwidth=0.17, relheight=0.05)

root.mainloop()

1 Ответ

1 голос
/ 18 марта 2019

Просто посмотрите, какие значения постоянны между этими строками, оберните их внутри функции и определите остальные как параметры.

def make_label(my_text, my_offset):
      temp = tk.Label(frame, text=my_text, anchor='nw')
      temp.config(width=30, font=('Microsoft JhengHei Light', 15), bg='#08295e', fg='white')
      temp.place(relx=0.05, rely=my_offset)
      return temp

instruct1 = make_label('Step1: Do step 1', 0.1)       
instruct2 = make_label('Step2: Do step 2', 0.2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...