मेरे मामले में मैं एक उपयोगकर्ता उपयोगकर्ता पूरे विंडो का आकार बदलने से एक Gtk.Paned आकार बदलने के बीच अंतर करने की कोशिश कर रहा था। दोनों ने notify::position
सिग्नल उत्सर्जित किया।
मेरे समाधान, था के बाद से मैं अगर उपयोगकर्ता विजेट से विंडो का आकार है पता नहीं कर सकते हैं, रिवर्स क्या मैं जानना चाहता था। अगर उपयोगकर्ता ने विजेट को दोबारा स्थान दिया है और अपडेट को अनदेखा कर दिया है तो उपयोगकर्ता ने अपने विजेट पर उन्हें शुरू नहीं किया है।
है कि परीक्षण के बजाय कहा, "यदि विंडो का आकार बदला जा रहा है" मैं स्थानीय स्तर पर button-press-event
और button-release-event
की दर्ज की गई तो मैं बजाय परीक्षण कर सकते हैं "अगर विजेट जा रहा है फिर से तैनात"
from gi.repository import Gtk
class MyPaned(Gtk.Paned):
_user_activated = False
def on_position(self, _, gparamspec):
if self._user_activated:
# widget touched
else:
# window resized (probably)
def on_button_press(self, *_):
self._user_activated = True
def on_button_release(self, *_):
self._user_activated = False
dev __init__(self, *args):
super(MyPaned, self).__init__(*args)
self.connect('notify::position', self.on_position)
self.connect('button-press-event', self.on_button_press)
self.connect('button-release-event', self.on_button_release)
प्रभावी ढंग से द्वारा दर्ज की गई जब उपयोगकर्ता ने सीधे मेरे विजेट के साथ बातचीत शुरू की और समाप्त कर दिया, तो मुझे लगता है कि बाकी समय खिड़की का आकार बदल रहा था। (जब तक मुझे और मामले नहीं मिलते)
क्या आपने ऐसा करने का कोई तरीका निकाला है? – clahey
नहीं। यदि मैं करता हूं, तो यह यहां दिखाई देगा। –