में घटनाएं प्राप्त करने में असमर्थ मैं जीटीके 3 + में पाइथन में लिखे गए एक ऑडियो प्लेयर को माइग्रेट करने का प्रयास कर रहा हूं। जीटीके 2 में मैंने progress_bar.add_event (... pointer_motion_notify | button_press) (नीचे पूरा कोड) का उपयोग किया, और बटन_प्रेस और पॉइंटर_मोशन_नोटिफ़ाई के लिए सिग्नल हैंडलर सेट किया। जीटीके 3 में, ऐसा प्रतीत होता है कि प्रोग्रेसबार() इन संकेतों को उत्सर्जित नहीं करता है।जीटीके 3 प्रोग्रेसबार(): पायथन
मैंने ओवरले() और ड्रॉइंग एरिया() का उपयोग करके एक वर्कअराउंड लागू किया है जो ड्रॉइंगएरिया को संकेतों को उत्सर्जित करने की अनुमति देता है, लेकिन इसकी आवश्यकता नहीं है ... क्या यह एक बग है? या मैं गलत कर रहा हूँ?
कोड:
import gi
gi.require_version("Gtk","3.0")
from gi.repository import Gtk, Gdk, GObject
class MainWindow(Gtk.Window):
def __init__(self):
super(MainWindow, self).__init__(title='ProgressBar Event Test')
self.progressbar = Gtk.ProgressBar()
self.add(self.progressbar)
self.progressbar.set_events(Gdk.EventMask.BUTTON_PRESS_MASK
| Gdk.EventMask.POINTER_MOTION_MASK)
self.progressbar.connect("button-press-event", self.on_event, 'button-press')
self.progressbar.connect("motion-notify-event", self.on_event, 'motion-notify')
self.connect("delete-event", Gtk.main_quit)
self.current_progress = 0.0
GObject.timeout_add(200,self.update_progress)
self.show_all()
def on_event(self, widget, event, data=None):
print "on_event called for %s signal"%data
return False
def update_progress(self):
self.progressbar.set_fraction(self.current_progress)
self.current_progress += 0.01
return self.current_progress <= 1 # False cancels timeout
def main():
w = MainWindow()
Gtk.main()
if __name__ == '__main__':
main()
धन्यवाद - हाँ, यह एक बेहतर समाधान प्रतीत होता है (और शायद इवेंटबॉक्स को किसके लिए डिज़ाइन किया गया था :-) – simonltwick
@ सिमोनल्टविक - धन्यवाद। किसी भी स्टैकएक्सचेंज साइट पर याद रखें, अपने पसंदीदा उत्तर के आगे टिक बटन पर क्लिक करना न भूलें और स्वीकार करना चाहते हैं। जब आपके पास पर्याप्त प्रतिनिधि बिंदु होते हैं तो यह कहने के लिए ऊपर या नीचे बटन क्लिक करें कि क्या आप किसी भी उत्तर से खुश/नाखुश हैं। – fossfreedom