Найти - Пользователи
Полная версия: Можете оценить мой код?
Начало » GUI » Можете оценить мой код?
1
GoblinError
#/usr/bin/env python3
from tkinter import Frame
from tkinter import Tk
from tkinter import Label
from tkinter import Entry
from tkinter import Button
from tkinter import END
import random
import string
class Application(Frame):
    def __init__(self, master):
        Frame.__init__(self, master)
        self.grid()
        self.create_widgets()
    def create_widgets(self):
        self.label_of_key = Label(self, text='Key:')
        self.label_of_key.grid(row=0, column=0)
        self.entry_of_key = Entry(self, width=19, state='readonly')
        self.entry_of_key.grid(row=0, column=1)
        self.button_of_generate = Button(self,
                                         text='Generate',
                                         command=self.generate_key)
        self.button_of_generate.grid(row=0, column=2)
    def generate_key(self):
        self.key = ''.join(random.choice(
            string.ascii_uppercase + string.digits) for i in range(15))
        self.formatted_key = self.key[0:5] + '-' + self.key[
            5:10
        ] + '-' + self.key[10:15]
        self.entry_of_key.configure(state='normal')
        self.entry_of_key.delete(0, END)
        self.entry_of_key.insert(0, self.formatted_key)
        self.entry_of_key.configure(state='readonly')
root = Tk()
root.iconbitmap('icon.gif')
root.title('Steam key generator')
root.resizable(0, 0)
app = Application(root)
root.mainloop()
4kpt_III
Нужна ревизия с ошибками или что-то не работает?
forgot_password
4kpt_III
Нужна ревизия с ошибками
4kpt_III
Не вопрос.

1. Импорты так делать не нужно. Если уж лень писать полностью, тогда

import tkinter as tk
#
root = tk.Tk()

2. Посмотрите, что находится в END.

3. Делать все, что не будет нужно в других методах и не должно быть видно извне класса атрибутами класса не нужно. Это плохо и некрасиво Да и сами потом запутаетесь.

4. Вот эту всю часть луче убрать в проверку иначе при импорте она также будет выполняться и ценности в ООП как таковом уж точно не будет

if __name__ == "__main__":
    root = Tk()
    root.iconbitmap('icon.gif')
    root.title('Steam key generator')
    root.resizable(0, 0)
    app = Application(root)
    root.mainloop()

5. Откройте для себя форматирование строк. Ведь жутко же…

self.formatted_key = self.key[0:5] + '-' + self.key[
            5:10
        ] + '-' + self.key[10:15]

6. PEP8 на досуге почитать не помешает.

P.S. Вообще для первого раза код хороший. Удачи в освоении.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB