fixed GTK hanging by Angoosh

This commit is contained in:
Martin Quarda 2025-04-28 11:04:47 +02:00
parent fc653ef402
commit 2bfa656855

12
main.py
View File

@ -7,7 +7,7 @@ import json
gi.require_version('Gtk', '4.0') gi.require_version('Gtk', '4.0')
from queue import Queue from queue import Queue
from gi.repository import Gtk, Gio, Gdk from gi.repository import Gtk, Gio, Gdk, GLib
from requests.adapters import HTTPAdapter, Retry from requests.adapters import HTTPAdapter, Retry
from usbcardreader import UsbCardReader from usbcardreader import UsbCardReader
@ -86,7 +86,7 @@ def callbackOnCard(card_id):
if card_id in db: if card_id in db:
if card_id not in activeCards: if card_id not in activeCards:
activeCards.append(card_id) activeCards.append(card_id)
win.arb(db[card_id]) GLib.idle_add(win.arb, db[card_id])
print('Card is active now') print('Card is active now')
else: else:
print('Card is already active') print('Card is already active')
@ -140,16 +140,16 @@ class GridRow():
else: else:
mins, secs = divmod(t, 60) mins, secs = divmod(t, 60)
timer = '{:02d}:{:02d}'.format(mins, secs) timer = '{:02d}:{:02d}'.format(mins, secs)
self.runb.set_label(timer) GLib.idle_add(self.runb.set_label, timer)
time.sleep(1) time.sleep(1)
t -= 1 t -= 1
if t == 10: if t == 10:
if self.grid.get_name() == "lightgrid": if self.grid.get_name() == "lightgrid":
self.grid.set_name("lredgrid") GLib.idle_add(self.grid.set_name, "lredgrid")
else: else:
self.grid.set_name("dredgrid") GLib.idle_add(self.grid.set_name, "dredgrid")
GridWindow.remRow(self.parent) GLib.idle_add(GridWindow.remRow, self.parent)
class GridWindow(Gtk.ApplicationWindow): class GridWindow(Gtk.ApplicationWindow):
def __init__(self, **kargs): def __init__(self, **kargs):