Python gtk 模块,CheckButton() 实例源码
我们从Python开源项目中,提取了以下17个代码示例,用于说明如何使用gtk.CheckButton()。
def do_live_warning(self, radio):
d = gtk.MessageDialog(parent=self, buttons=gtk.BUTTONS_OK)
d.set_markup("<big><b>" + _("Note:") + "</b></big>")
msg = _("The {vendor} {model} operates in <b>live mode</b>. "
"This means that any changes you make are immediately sent "
"to the radio. Because of this, you cannot perform the "
"<u>Save</u> or <u>Upload</u> operations. If you wish to "
"edit the contents offline, please <u>Export</u> to a CSV "
"file, using the <b>File menu</b>.")
msg = msg.format(vendor=radio.VENDOR, model=radio.MODEL)
d.format_secondary_markup(msg)
again = gtk.CheckButton(_("Don't show this again"))
again.show()
d.vbox.pack_start(again, 0, 0, 0)
d.run()
CONF.set_bool("live_mode", again.get_active(), "noconfirm")
d.destroy()
def create_checkbox_hbox(self, label, value, trace, sensitivity_group, constraints=None):
hbox_main = gtk.HBox()
checkbutton_option = gtk.CheckButton(label.title())
checkbutton_option.set_active(value)
if label.lower() == "enabled":
checkbutton_option.connect("toggled", self.enabled_checkbox_toggled, sensitivity_group)
hbox_main.pack_start(checkbutton_option)
self.plugin_config_widgets.append(checkbutton_option)
self.plugin_config_traces.append(trace)
sensitivity_group.append(checkbutton_option)
self.sensitivity_groups.append(sensitivity_group)
self.sensitivity_groups_switch.append(checkbutton_option)
return hbox_main
def create_options_hbox(self, label, value, trace, sensitivity_group, constraints=None):
hbox_main = gtk.HBox()
label_text = gtk.Label(label.title())
label_text.set_alignment(0, 0.5)
label_text.set_padding(8,8)
checkbuttons = []
selected_options = value
if constraints is None:
options = []
else:
options = constraints
for option in options:
new_button = gtk.CheckButton(option)
if option in selected_options:
new_button.set_active(True)
checkbuttons.append(new_button)
hbox_main.pack_start(label_text)
for checkbutton in checkbuttons:
hbox_main.pack_start(checkbutton)
self.plugin_config_widgets.append(checkbuttons)
self.plugin_config_traces.append(trace)
sensitivity_group.append(label_text)
sensitivity_group.append(checkbuttons)
return hbox_main
def createCheckButton(parent, text="", active=False, gridX=0, gridY=0, sizeX=1, sizeY=1, xExpand=True, yExpand=True, handler=None):
"""Creates a checkbox widget and adds it to a parent widget."""
temp = gtk.CheckButton(text if text != "" else None)
temp.set_active(active)
temp.connect("toggled", handler)
parent.attach(temp, gridX, gridX+sizeX, gridY, gridY+sizeY, xoptions=gtk.EXPAND if xExpand else 0, yoptions=gtk.EXPAND if yExpand else 0)
return temp
def create_M_file() :
p = os.path.join(NCAM_DIR, NGC_DIR, 'M123')
with open(p, 'wb') as f :
f.write('#!/usr/bin/env python\n# coding: utf-8\n')
f.write("import gtk\nimport os\nimport pygtk\npygtk.require('2.0')\nfrom gtk import gdk\n\n")
f.write("fname = '%s'\n" % os.path.join(NCAM_DIR, CATALOGS_DIR, 'no_skip_dlg.conf'))
f.write('if os.path.isfile(fname) :\n exit(0)\n\n')
f.write("msg = '%s'\n" % _('Stop LinuxCNC program, toggle the shown button, then restart'))
f.write("msg1 = '%s'\n" % _('Skip block not active'))
f.write("icon_fname = '%s'\n\n" % os.path.join(NCAM_DIR, GRAPHICS_DIR, 'skip_block.png'))
f.write('dlg = gtk.MessageDialog(parent = None, flags = gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, type = gtk.MESSAGE_WARNING, buttons = gtk.BUTTONS_NONE, message_format = msg1)\n\n')
f.write("dlg.set_title('NativeCAM')\ndlg.format_secondary_markup(msg)\n\n")
f.write('dlg.set_image(gtk.Image())\n')
f.write('dlg.get_image().set_from_pixbuf(gdk.pixbuf_new_from_file_at_size(icon_fname, 80, 80))\n\n')
f.write('cb = gtk.CheckButton(label = "%s")\n' % _("Do not show again"))
f.write('dlg.get_content_area().pack_start(cb, True, True, 0)\n')
f.write('dlg.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK).grab_focus()\n\n')
f.write('dlg.set_keep_above(True)\ndlg.show_all()\n\ndlg.run()\n')
f.write("if cb.get_active() :\n open(fname, 'w').close()\n")
f.write('exit(0)\n')
os.chmod(p, 0o755)
mess_dlg(_('LinuxCNC needs to be restarted now'))
def msg_inv(self, msg, msgid):
msg = msg.replace('°', '°')
print('\n%(feature_name)s : %(msg)s' % {'feature_name':self.get_name(), 'msg':msg})
if (("ALL:msgid-0" in EXCL_MESSAGES) or
("%s:msgid-0" % (self.get_type()) in EXCL_MESSAGES) or
(("%s:msgid-%d" % (self.get_type(), msgid)) in EXCL_MESSAGES)) :
return
# create dialog with image and checkbox
dlg = gtk.MessageDialog(parent = None,
flags = gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
type = gtk.MESSAGE_WARNING,
buttons = gtk.BUTTONS_NONE,
message_format = self.get_name())
dlg.set_title('NativeCAM')
dlg.format_secondary_text(msg)
img = gtk.Image()
img.set_from_pixbuf(self.get_icon(add_dlg_icon_size))
dlg.set_image(img)
cb = gtk.CheckButton(label = _("Do not show again"))
dlg.get_content_area().pack_start(cb, True, True, 0)
dlg.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK).grab_focus()
dlg.set_keep_above(True)
dlg.show_all()
dlg.run()
if cb.get_active() :
GLOBAL_PREF.add_excluded_msg(self.get_type(), msgid)
dlg.destroy()
def _main_window_add_actions(self, button_box):
for action in self.config['main_window'].get('actions', []):
if action.get('type', 'button') == 'button':
widget = gtk.Button(label=action.get('label', 'OK'))
event = "clicked"
elif action['type'] == 'checkbox':
widget = gtk.CheckButton(label=action.get('label', '?'))
event = "toggled"
else:
raise NotImplementedError('We only have buttons atm.')
if action.get('position', 'left') in ('left', 'top'):
button_box.pack_start(widget, False, True)
elif action['position'] in ('right', 'bottom'):
button_box.pack_end(widget, False, True)
else:
raise NotImplementedError('Invalid position: %s'
% action['position'])
if action.get('op'):
def activate(o, a):
return lambda d: self._do(o, a)
widget.connect(event,
activate(action['op'], action.get('args', [])))
widget.set_sensitive(action.get('sensitive', True))
self.items[action['item']] = widget
def create_tag_vbox(self, widget, tab):
for i in widget.get_children():
i.destroy()
for i in self.tags_ids:
tag_id = self.tags_ids[i]
tag_name = self.db.session.query(db.Tag.name).filter_by(tag_id=tag_id).first().name
tab[i] = gtk.CheckButton(tag_name)
tab[i].set_active(False)
widget.pack_start(tab[i])
widget.show_all()
def update_config(self,widget,var_type=None):
if isinstance(widget,gtk.Adjustment):
value = widget.get_value()
elif isinstance(widget,gtk.CheckButton):
value = widget.get_active()
self.atual_config[var_type] = value
def _init(self, data):
self._widget = gtk.CheckButton("Enabled")
self._widget.set_active(self._mem_value())
self._widget.connect("toggled", self.toggled)
def _add(self, tab, row, name, editor, text):
label, editor, img = super(MultiMemoryDetailEditor, self)._add(
tab, row, name, editor, text, 1)
selector = gtk.CheckButton()
tab.attach(selector, 0, 1, row, row + 1,
xoptions=gtk.FILL, yoptions=0, xpadding=0, ypadding=3)
selector.show()
self._toggle_selector(selector, label, editor, img)
selector.connect("toggled", self._toggle_selector, label, editor, img)
self._selections[name] = selector
def _show_instructions(self, radio, message):
if message is None:
return
if CONF.get_bool("clone_instructions", "noconfirm"):
return
d = gtk.MessageDialog(parent=self, buttons=gtk.BUTTONS_OK)
d.set_markup("<big><b>" + _("{name} Instructions").format(
name=radio.get_name()) + "</b></big>")
msg = _("{instructions}").format(instructions=message)
d.format_secondary_markup(msg)
again = gtk.CheckButton(
_("Don't show instructions for any radio again"))
again.show()
again.connect("toggled", lambda action:
self.clonemenu.set_active(not action.get_active()))
d.vbox.pack_start(again, 0, 0, 0)
h_button_box = d.vbox.get_children()[2]
try:
ok_button = h_button_box.get_children()[0]
ok_button.grab_default()
ok_button.grab_focus()
except AttributeError:
# don't grab focus on GTK+ 2.0
pass
d.run()
d.destroy()
def show_warning(msg, text,
parent=None, buttons=None, title="Warning",
can_squelch=False):
if buttons is None:
buttons = gtk.BUTTONS_OK
d = gtk.MessageDialog(buttons=buttons,
parent=parent,
type=gtk.MESSAGE_WARNING)
d.set_title(title)
d.set_property("text", msg)
l = gtk.Label(_("Details") + ":")
l.show()
d.vbox.pack_start(l, 0, 0, 0)
l = gtk.Label(_("Proceed?"))
l.show()
d.get_action_area().pack_start(l, 0, 0, 0)
d.get_action_area().reorder_child(l, 0)
textview = _add_text(d, text)
textview.set_wrap_mode(gtk.WRAP_WORD)
if not parent:
d.set_position(gtk.WIN_POS_CENTER_ALWAYS)
if can_squelch:
cb = gtk.CheckButton(_("Do not show this next time"))
cb.show()
d.vbox.pack_start(cb, 0, 0, 0)
d.set_size_request(600, 400)
r = d.run()
d.destroy()
if can_squelch:
return r, cb.get_active()
return r
def addParam(self, name, field, ptype, *args):
x = self.tblGeneral.rows
self.tblGeneral.rows += 1
value = eval(field)
if ptype==bool:
obj = gtk.CheckButton()
obj.set_label(name)
obj.set_active(value)
obj.set_alignment(0, 0.5)
obj.show()
obj.field=field
self.tblGeneral.attach(obj, 0, 2, x, x+1, gtk.EXPAND|gtk.FILL, 0)
elif ptype==int:
obj = gtk.SpinButton(climb_rate=10)
if len(args)==2:
obj.set_range(args[0], args[1])
obj.set_increments(1, 10)
obj.set_numeric(True)
obj.set_value(value)
obj.show()
obj.field=field
lbl = gtk.Label(name)
lbl.set_alignment(0, 0.5)
lbl.show()
self.tblGeneral.attach(lbl, 0, 1, x, x+1, gtk.FILL, 0)
self.tblGeneral.attach(obj, 1, 2, x, x+1, gtk.EXPAND|gtk.FILL, 0)
elif ptype==list:
obj = gtk.combo_box_new_text()
for s in args[0]:
obj.append_text(s)
obj.set_active(value)
obj.show()
obj.field=field
lbl = gtk.Label(name)
lbl.set_alignment(0, 0.5)
lbl.show()
self.tblGeneral.attach(lbl, 0, 1, x, x+1, gtk.FILL, 0)
self.tblGeneral.attach(obj, 1, 2, x, x+1, gtk.EXPAND|gtk.FILL, 0)
else:
obj = gtk.Entry()
obj.set_text(value)
obj.show()
obj.field=field
lbl = gtk.Label(name)
lbl.set_alignment(0, 0.5)
lbl.show()
self.tblGeneral.attach(lbl, 0, 1, x, x+1, gtk.FILL, 0)
self.tblGeneral.attach(obj, 1, 2, x, x+1, gtk.EXPAND|gtk.FILL, 0)
def on_okbutton1_clicked(self, widget, *args):
for obj in self.tblGeneral:
if hasattr(obj, "field"):
if isinstance(obj, gtk.CheckButton):
value = obj.get_active()
elif isinstance(obj, gtk.SpinButton):
value = obj.get_value_as_int()
elif isinstance(obj, gtk.ComboBox):
value = obj.get_active()
else:
value = '"%s"' % (obj.get_text())
exec("%s=%s" % (obj.field, value))
if self.get_widget("chkDefaultColors").get_active():
conf.FONT_COLOR=""
conf.BACK_COLOR=""
else:
conf.FONT_COLOR = self.btnFColor.selected_color
conf.BACK_COLOR = self.btnBColor.selected_color
if self.btnFont.selected_font.to_string() != 'monospace' and not self.chkDefaultFont.get_active():
conf.FONT = self.btnFont.selected_font.to_string()
else:
conf.FONT = ''
#Guardar shortcuts
scuts={}
for x in self.treeModel:
if x[0]!='' and x[1]!='':
scuts[x[1]] = [x[0]]
for x in self.treeModel2:
if x[0]!='' and x[1]!='':
scuts[x[1]] = x[0]
global shortcuts
shortcuts = scuts
#Boton donate
global wMain
if conf.HIDE_DONATE:
wMain.get_widget("btnDonate").hide_all()
else:
wMain.get_widget("btnDonate").show_all()
#Recrear menu de comandos personalizados
wMain.populateCommandsMenu()
wMain.writeConfig()
self.get_widget("wConfig").destroy()
#-- Wconfig.on_okbutton1_clicked }
#-- Wconfig.on_btnBColor_clicked {
def _setup_widgets(self):
h_space = 4 # horizontal space
# create the frames to contein the diferent settings.
f_time = gtk.Frame(label="Time")
f_oskin = gtk.Frame(label="Onion Skin")
self.set_size_request(300,-1)
self.vbox.pack_start(f_time,True,True,h_space)
self.vbox.pack_start(f_oskin,True,True,h_space)
# create the time settings.
th = gtk.HBox()
fps,fps_spin = Utils.spin_button("Framerate",'int',self.last_config[FRAMERATE],1,100) #conf fps
th.pack_start(fps,True,True,h_space)
f_time.add(th)
# create onion skin settings
ov = gtk.VBox()
f_oskin.add(ov)
# fist line
oh1 = gtk.HBox()
depth,depth_spin = Utils.spin_button("Depth",'int',self.last_config[OSKIN_DEPTH],1,4,1) #conf depth
on_play = gtk.CheckButton("On Play")
on_play.set_active(self.last_config[OSKIN_ONPLAY])
oh1.pack_start(depth,True,True,h_space)
oh1.pack_start(on_play,True,True,h_space)
ov.pack_start(oh1)
# second line
oh2 = gtk.HBox()
forward = gtk.CheckButton("Forward")
forward.set_active(self.last_config[OSKIN_FORWARD])
backward = gtk.CheckButton("Backward")
backward.set_active(self.last_config[OSKIN_BACKWARD])
oh2.pack_start(forward,True,True,h_space)
oh2.pack_start(backward,True,True,h_space)
ov.pack_start(oh2)
# last line
# connect a callback to all
fps_spin.connect("value_changed",self.update_config,FRAMERATE)
depth_spin.connect("value_changed",self.update_config,OSKIN_DEPTH)
on_play.connect("toggled",self.update_config,OSKIN_ONPLAY)
forward.connect("toggled",self.update_config,OSKIN_FORWARD)
backward.connect("toggled",self.update_config,OSKIN_BACKWARD)
# show all
self.show_all()
def do_columns(self):
eset = self.get_current_editorset()
driver = directory.get_driver(eset.rthread.radio.__class__)
radio_name = "%s %s %s" % (eset.rthread.radio.VENDOR,
eset.rthread.radio.MODEL,
eset.rthread.radio.VARIANT)
d = gtk.Dialog(title=_("Select Columns"),
parent=self,
buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
vbox = gtk.VBox()
vbox.show()
sw = gtk.ScrolledWindow()
sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
sw.add_with_viewport(vbox)
sw.show()
d.vbox.pack_start(sw, 1, 1, 1)
d.set_size_request(-1, 300)
d.set_resizable(False)
labelstr = _("Visible columns for {radio}").format(radio=radio_name)
label = gtk.Label(labelstr)
label.show()
vbox.pack_start(label)
fields = []
memedit = eset.get_current_editor() # .editors["memedit"]
unsupported = memedit.get_unsupported_columns()
for colspec in memedit.cols:
if colspec[0].startswith("_"):
continue
elif colspec[0] in unsupported:
continue
label = colspec[0]
visible = memedit.get_column_visible(memedit.col(label))
widget = gtk.CheckButton(label)
widget.set_active(visible)
fields.append(widget)
vbox.pack_start(widget, 1, 1, 1)
widget.show()
res = d.run()
selected_columns = []
if res == gtk.RESPONSE_OK:
for widget in fields:
colnum = memedit.col(widget.get_label())
memedit.set_column_visible(colnum, widget.get_active())
if widget.get_active():
selected_columns.append(widget.get_label())
d.destroy()
CONF.set(driver, ",".join(selected_columns), "memedit_columns")