Amazing-Python-Scripts

Форк
0
105 строк · 4.7 Кб
1
from tkinter import *
2
# import os
3
import qrcode
4
from PIL import Image, ImageTk
5
from resizeimage import resizeimage
6

7
# QR Code Generator | Designed by Jay Gohel
8

9

10
class Qr_Genrator():
11
    def __init__(self, root):
12
        self.root = root
13
        self.root.title("QR Code Generator")
14
        self.root.geometry('900x500+200+50')
15
        self.root.resizable(False, False)
16

17
        title = Label(self.root, text="  QR Code Genrator", font=(
18
            "time new roman", 40), bg="#F96900", fg="white", anchor="w").place(x=0, y=0, relwidth=1)
19

20
        # Variable
21
        self.var_emp_code = StringVar()
22
        self.var_name = StringVar()
23
        self.var_department = StringVar()
24
        self.var_designation = StringVar()
25

26
        # Employee detail window design
27
        emp_Frame = Frame(self.root, bd=2, relief=RIDGE, bg="white")
28
        emp_Frame.place(x=50, y=100, width=500, height=380)
29

30
        emp_title = Label(emp_Frame, text="  Employee Details", font=(
31
            "goudy old style", 20), bg="#FB9316", fg="white").place(x=0, y=0, relwidth=1)
32
        lbl_emp_code = Label(emp_Frame, text="  Employee ID", font=(
33
            "time new roman", 15), bg="white").place(x=20, y=60)
34
        lbl_emp_name = Label(emp_Frame, text="  Name", font=(
35
            "time new roman", 15), bg="white").place(x=20, y=100)
36
        lbl_emp_dept = Label(emp_Frame, text="  Department", font=(
37
            "time new roman", 15), bg="white").place(x=20, y=140)
38
        lbl_emp_designation = Label(emp_Frame, text="  Designation", font=(
39
            "time new roman", 15), bg="white").place(x=20, y=180)
40

41
        text_emp_code = Entry(emp_Frame, font=(
42
            "time new roman", 15), textvariable=self.var_emp_code, bg="lightyellow").place(x=200, y=60)
43
        text_emp_name = Entry(emp_Frame, font=(
44
            "time new roman", 15), textvariable=self.var_name, bg="lightyellow").place(x=200, y=100)
45
        text_emp_dept = Entry(emp_Frame, font=(
46
            "time new roman", 15), textvariable=self.var_department, bg="lightyellow").place(x=200, y=140)
47
        text_emp_designation = Entry(emp_Frame, font=(
48
            "time new roman", 15), textvariable=self.var_designation, bg="lightyellow").place(x=200, y=180)
49

50
        btn_genrator = Button(emp_Frame, text="QR Genrator", command=self.genrate, font=(
51
            "time new roman", 15, "bold"), bg="#2196f3", fg="white").place(x=90, y=250, width=180, height="30")
52
        btn_clear = Button(emp_Frame, text="Clear", command=self.clear, font=(
53
            "time new roman", 15, "bold"), bg="#2196f3", fg="white").place(x=290, y=250, width=120, height="30")
54

55
        self.msg = ""
56
        self.lbl_msg = Label(emp_Frame, text=self.msg, font=(
57
            "time new roman", 15), bg="white", fg="green")
58
        self.lbl_msg.place(x=0, y=320, relwidth=1)
59

60
        # Qr Code window design
61
        qr_Frame = Frame(self.root, bd=2, relief=RIDGE, bg="white")
62
        qr_Frame.place(x=600, y=100, width=250, height=380)
63

64
        emp_title = Label(qr_Frame, text="Employee QR code", font=(
65
            "goudy old style", 15), bg="#FB9316", fg="white").place(x=0, y=0, relwidth=1)
66

67
        self.qr_code = Label(qr_Frame, text="No QR\n available", font=(
68
            "time new roman", 15), bg="#D76C02", fg="white", bd=1, relief=RIDGE)
69
        self.qr_code.place(x=35, y=100, width=180, height=180)
70

71
    def clear(self):
72
        self.var_emp_code.set('')
73
        self.var_name.set('')
74
        self.var_department.set('')
75
        self.var_designation.set('')
76
        self.msg = ""
77
        self.lbl_msg.config(text=self.msg)
78
        self.qr_code.config(image='')
79

80
    def genrate(self):
81
        if self.var_emp_code.get() == '' or self.var_name.get() == '' or self.var_department.get() == '' or self.var_designation.get() == '':
82
            self.msg = "All filed required !!!"
83
            self.lbl_msg.config(text=self.msg, fg="red")
84

85
        else:
86
            qr_data = (
87
                f"Employee Id:{self.var_emp_code.get()}\nEmployee Name:{self.var_name.get()}\nDepartment:{self.var_department.get()}\nDesignation:{self.var_designation.get()}")
88
            qr_code = qrcode.make(qr_data)
89
            # print(qr_code)
90
            qr_code = resizeimage.resize_cover(qr_code, [180, 180])
91
            qr_code.save('./QR-code-Genrator/employee_qr/emp_' +
92
                         str(self.var_emp_code.get()+'.png'))
93
            # qr code img update
94
            self.im = ImageTk.PhotoImage(
95
                file='../QR-code-Genrator/employee_qr/emp_'+str(self.var_emp_code.get()+'.png'))
96
            self.qr_code.config(image=self.im)
97

98
            # updating noti
99
            self.msg = "QR genrated Successful!!"
100
            self.lbl_msg.config(text=self.msg, fg="green")
101

102

103
root = Tk()
104
obj = Qr_Genrator(root)
105
root.mainloop()
106

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.