notbook
This commit is contained in:
42
011 test.py
42
011 test.py
@@ -56,13 +56,20 @@ class QRPlatbaApp(ctk.CTk):
|
||||
ctk.CTkLabel(pay, text="Vyberte položku k úhradě:",
|
||||
font=("Arial", 12, "bold")).pack(anchor="w", padx=10, pady=(10, 5))
|
||||
|
||||
self.selected_item = ctk.StringVar(value=list(ITEMS.keys())[0])
|
||||
self.combo = ctk.CTkOptionMenu(pay,
|
||||
variable=self.selected_item,
|
||||
values=list(ITEMS.keys()),
|
||||
font=("Arial", 12),
|
||||
command=self.update_amount)
|
||||
# 🏷️ Prepare list like "Očkování chřipka Vaxigrip (600 Kč)"
|
||||
self.display_items = [f"{name} ({price:.0f} Kč)" for name, price in ITEMS.items()]
|
||||
self.item_map = {f"{name} ({price:.0f} Kč)": name for name, price in ITEMS.items()}
|
||||
|
||||
self.selected_item = ctk.StringVar(value=self.display_items[0])
|
||||
self.combo = ctk.CTkOptionMenu(
|
||||
pay,
|
||||
variable=self.selected_item,
|
||||
values=self.display_items,
|
||||
font=("Arial", 12),
|
||||
command=self.update_amount
|
||||
)
|
||||
self.combo.pack(fill="x", padx=10)
|
||||
|
||||
self.amount_label = ctk.CTkLabel(pay, text="", font=("Arial", 12, "italic"))
|
||||
self.amount_label.pack(anchor="e", padx=10, pady=(5, 10))
|
||||
self.update_amount()
|
||||
@@ -80,12 +87,27 @@ class QRPlatbaApp(ctk.CTk):
|
||||
font=("Arial", 10),
|
||||
text_color="#666").pack(side="bottom", pady=(10, 0))
|
||||
|
||||
# ✅ Center window on monitor
|
||||
self.center_window()
|
||||
|
||||
def update_amount(self, _=None):
|
||||
item = self.selected_item.get()
|
||||
display_item = self.selected_item.get()
|
||||
item = self.item_map[display_item]
|
||||
self.amount_label.configure(text=f"Částka: {ITEMS[item]:.2f} Kč")
|
||||
|
||||
def center_window(self):
|
||||
self.update_idletasks() # ensure geometry info is up-to-date
|
||||
width = self.winfo_width()
|
||||
height = self.winfo_height()
|
||||
screen_width = self.winfo_screenwidth()
|
||||
screen_height = self.winfo_screenheight()
|
||||
x = int((screen_width / 2) - (width / 2))
|
||||
y = int((screen_height / 3) - (height / 2))
|
||||
self.geometry(f"{width}x{height}+{x}+{y}")
|
||||
|
||||
def generate_qr(self):
|
||||
item = self.selected_item.get()
|
||||
display_item = self.selected_item.get()
|
||||
item = self.item_map[display_item]
|
||||
spayd = create_spayd(IBAN, ITEMS[item], RODCIS, f"{PRIJMENI} {JMENO} – {item}", CURRENCY)
|
||||
img = qrcode.make(spayd)
|
||||
filename = f"{PRIJMENI}_{JMENO}_{datetime.now():%Y%m%d_%H%M%S}.png"
|
||||
@@ -101,8 +123,8 @@ class QRPlatbaApp(ctk.CTk):
|
||||
self.update_idletasks()
|
||||
self.geometry(f"{self.winfo_reqwidth()}x{self.winfo_reqheight()}")
|
||||
|
||||
messagebox.showinfo("QR Platba vytvořena",
|
||||
f"Soubor uložen jako:\n{out_path}\n\nSPD řetězec:\n{spayd}")
|
||||
# messagebox.showinfo("QR Platba vytvořena",
|
||||
# f"Soubor uložen jako:\n{out_path}\n\nSPD řetězec:\n{spayd}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
app = QRPlatbaApp()
|
||||
|
||||
Reference in New Issue
Block a user