Untitled

 avatar
unknown
plain_text
a year ago
1.9 kB
5
Indexable
import tkinter as tk
from tkinter import ttk, messagebox
from barcode import EAN13, Code128
from barcode.writer import ImageWriter


class BarcodeGenerator:
    def __init__(self, root):
        self.root = root
        self.root.title("Generator kodów kreskowych")

        self.label_type = ttk.Label(root, text="Wybierz typ kodu:")
        self.label_type.pack(pady=5)

        self.barcode_type_var = tk.StringVar()
        self.barcode_type_var.set("EAN13")  # Default
        self.barcode_type_combobox = ttk.Combobox(root, values=["EAN13", "EAN128"], textvariable=self.barcode_type_var)
        self.barcode_type_combobox.pack(pady=5)

        self.label_data = ttk.Label(root, text="Enter data:")
        self.label_data.pack(pady=5)

        self.entry_data = ttk.Entry(root)
        self.entry_data.pack(pady=5)

        self.generate_button = ttk.Button(root, text="Generate Barcode", command=self.generate_code)
        self.generate_button.pack(pady=10)

    def generate_code(self):
        barcode_type = self.barcode_type_var.get()
        data = self.entry_data.get()

        if barcode_type == "EAN13":
            if len(data) != 12 or not data.isdigit():
                self.show_error("Invalid input! Please enter a 12-digit number.")
                return
            barcode = EAN13(data, writer=ImageWriter())
        elif barcode_type == "EAN128":
            barcode = Code128(data, writer=ImageWriter())
        else:
            self.show_error("Invalid barcode type selected.")
            return

        barcode.save(f"{barcode_type.lower()}_code")
        self.show_info(f"{barcode_type} Code generated successfully for {data}")

    def show_error(self, message):
        tk.messagebox.showerror("Error", message)

    def show_info(self, message):
        tk.messagebox.showinfo("Information", message)


if __name__ == "__main__":
    root = tk.Tk()
    app = BarcodeGenerator(root)
    root.mainloop()
Editor is loading...
Leave a Comment