Ich arbeite an This web sites tutorials für meine GUI-Anwendung entwerfen, aber ich Gesicht Problem, in how do i could arrest the progress bar updating in clicking the Button Stop
Python Gtk: Wie könnte ich Knopf-Widget klicken, um eine Funktion geben, für Fortschrittsbalken Update to Kill
Eigentlich sehe ich über Gtk.ProgressBar.set_pulse_step()
aber Ich sehe immer noch komisch aus, weil ich kein Experte bin. Hier hat mein Code die Stop-Funktion verpasst.
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GObject
class ProgressBarWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="ProgressBar Demo")
self.set_border_width(10)
vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)
self.add(vbox)
self.progressbar = Gtk.ProgressBar()
vbox.pack_start(self.progressbar, True, True, 0)
button = Gtk.Button(label="Start")
button.connect("clicked", self.On_clicking)
vbox.pack_start(button, True, True, 0)
button = Gtk.Button(label="Stop")
button.connect("clicked", self.On_clicking_stop)
vbox.pack_start(button, True, True, 0)
def On_clicking(self, widget):
self.timeout_id = GObject.timeout_add(50, self.on_timeout, None)
self.activity_mode = False
def On_clicking_stop(self, widget):
## I have to stop the Progress Bar on Stop Button click
##
##
##
##
##
return False
def on_timeout(self, user_data):
"""
Update value on the progress bar
"""
if self.activity_mode:
self.progressbar.pulse()
else:
new_value = self.progressbar.get_fraction() + 0.01
if new_value > 1:
new_value = 0
self.progressbar.set_fraction(new_value)
# As this is a timeout function, return True so that it
# continues to get called
return True
win = ProgressBarWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
So freue ich mich für den richtigen Code von On_clicking_stop()
Funktion.