本文整理汇总了Python中Tkinter.Scale.bind方法的典型用法代码示例。如果您正苦于以下问题:Python Scale.bind方法的具体用法?Python Scale.bind怎么用?Python Scale.bind使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Tkinter.Scale
的用法示例。
在下文中一共展示了Scale.bind方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Application
# 需要导入模块: from Tkinter import Scale [as 别名]
# 或者: from Tkinter.Scale import bind [as 别名]
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.send_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.sock.bind((host, port))
self.grid()
self.columnconfigure(0, minsize=100)
self.columnconfigure(1, minsize=200)
self.columnconfigure(2, minsize=200)
self.columnconfigure(3, minsize=150)
self.columnconfigure(4, minsize=150)
self.columnconfigure(5, minsize=150)
self.columnconfigure(6, minsize=150)
self.create_widgets()
self.settables = self.assemble_settables()
self.gui_logger = logging.getLogger('gui')
self.request_update()
def create_widgets(self):
self.create_monitor()
self.create_check_buttons()
self.create_ranges()
self.create_scales()
self.create_radio_buttons()
self.create_voices()
self.quitButton = Button(self, text='Quit', command=self.quit)
self.quitButton.grid(columnspan=7, sticky=E + W)
def assemble_settables(self):
settables = self.winfo_children()
for w in settables:
settables += w.winfo_children()
return filter(lambda w: w.__class__.__name__ in ['Scale', 'Checkbutton'], settables)
def create_radio_buttons(self):
# Scale related
entries = ['DIATONIC', 'HARMONIC', 'MELODIC', 'PENTATONIC', 'PENTA_MINOR']
self.scale = StringVar()
self.scale.set('DIATONIC')
self.rb_frame = Frame(self)
for e in entries:
rb = Radiobutton(self.rb_frame, value=e, text=e, anchor=W,
command=self.send_scale, variable=self.scale)
rb.grid(row=len(self.rb_frame.winfo_children()), sticky=W)
self.rb_frame.grid(column=1, row=len(self.grid_slaves(column=1)), rowspan=3)
def create_monitor(self):
self.monitor_frame = LabelFrame(self, text="Monitor and Transport")
this_cycle = Scale(self.monitor_frame, label='cycle_pos', orient=HORIZONTAL,
from_=1, to=16, resolution=1)
this_cycle.disable, this_cycle.enable = (None, None)
this_cycle.ref = 'cycle_pos'
this_cycle.grid(column=0, row=0, sticky=E + W)
self.updateButton = Button(self.monitor_frame,
text='Reload all Settings',
command=self.request_update)
self.updateButton.grid(row=1, sticky=E + W)
self.ForceCaesuraButton = Button(self.monitor_frame,
text='Force Caesura',
command=self.force_caesura)
self.ForceCaesuraButton.grid(row=2, sticky=E + W)
self.saveBehaviourButton = Button(self.monitor_frame,
text='Save current behaviour',
command=self.request_saving_behaviour)
self.saveBehaviourButton.grid(row=3, sticky=E + W)
self.saveBehaviourNameEntry = Entry(self.monitor_frame)
self.saveBehaviourNameEntry.grid(row=4, sticky=E + W)
self.saveBehaviourNameEntry.bind('<KeyRelease>', self.request_saving_behaviour)
self.selected_behaviour = StringVar()
self.selected_behaviour.trace('w', self.new_behaviour_chosen)
self.savedBehavioursMenu = OptionMenu(self.monitor_frame,
self.selected_behaviour, None,)
self.savedBehavioursMenu.grid(row=5, sticky=E + W)
self.monitor_frame.grid(column=0, row=10, sticky=E + W)
def request_update(self):
self.send({'sys': 'update'})
def request_saving_behaviour(self, event=None):
"""callback for save behaviour button and textentry"""
if event and event.widget == self.saveBehaviourNameEntry:
if event.keysym == 'Return':
name = self.saveBehaviourNameEntry.get()
self.saveBehaviourNameEntry.delete(0, len(name))
else:
return
else: # button was pressed
name = self.saveBehaviourNameEntry.get()
if name:
self.send({'sys': ['save_behaviour', name]})
def force_caesura(self):
self.send({'force_caesura': True})
def create_voices(self):
voice_ids = ['1', '2', '3', '4']
SCALES = OrderedDict([
('pan_pos', {'min': -1, 'max': 1, 'start': 0.5, 'res': 0.001}),
('volume', {'min': 0, 'max': 1, 'start': 0.666, 'res': 0.001}),
#.........这里部分代码省略.........
示例2: create_voices
# 需要导入模块: from Tkinter import Scale [as 别名]
# 或者: from Tkinter.Scale import bind [as 别名]
def create_voices(self):
voice_ids = ['1', '2', '3', '4']
SCALES = OrderedDict([
('pan_pos', {'min': -1, 'max': 1, 'start': 0.5, 'res': 0.001}),
('volume', {'min': 0, 'max': 1, 'start': 0.666, 'res': 0.001}),
('slide_duration_msecs', {'min': 0, 'max': 2000, 'start': 60, 'res': 1}),
('slide_duration_prop', {'min': 0, 'max': 2, 'start': 0.666, 'res': 0.001}),
('binaural_diff', {'min': 0, 'max': 66, 'start': 0.2, 'res': 0.01})
])
for vid in voice_ids:
counter = 0
for sca in SCALES:
name = 'voice_' + vid + '_' + sca
setattr(self, 'min_' + name, SCALES[sca]['min'])
setattr(self, 'max_' + name, SCALES[sca]['max'])
this_sca = Scale(self, label=sca, orient=HORIZONTAL,
from_=getattr(self, 'min_' + name),
to=getattr(self, 'max_' + name),
resolution=SCALES[sca]['res'])
this_sca.enable = ('enable' in SCALES[sca].keys() and
SCALES[sca]['enable'] or None)
this_sca.disable = ('disable' in SCALES[sca].keys() and
SCALES[sca]['disable'] or None)
this_sca.grid(column=int(2 + int(vid)), row=counter, sticky=E + W)
this_sca.bind("<ButtonRelease>", self.scale_handler)
this_sca.ref = name
counter += 1
CHECK_BUTTONS = OrderedDict(
[('mute', False),
('automate_binaural_diffs', True),
('automate_note_duration_prop', True),
('use_proportional_slide_duration', {'val': True, 'label': 'proportional slide'}),
('automate_pan', True),
('automate_wavetables', True)])
for vid in voice_ids:
counter = 0
cb_frame = LabelFrame(self, text="Voice {0} - Automation".format(vid))
setattr(self, 'voice_' + vid + '_cb_frame', cb_frame)
for cb in CHECK_BUTTONS:
options = CHECK_BUTTONS[cb]
name = 'voice_' + vid + '_' + cb
label = (options['label'] if isinstance(options, dict) and
'label' in options.keys() else
(cb[9:] if cb[:9] == 'automate_' else cb))
setattr(self, name, IntVar(value=type(options) == dict and options['val'] or options))
self.this_cb = Checkbutton(cb_frame, text=label, variable=getattr(self, name))
self.this_cb.bind('<Button-1>', self.check_boxes_handler)
self.this_cb.disable = None
self.this_cb.grid(sticky=W, column=0, row=counter)
self.this_cb.ref = name
counter += 1
# add trigger wavetable-button
trigWavetableButton = Button(cb_frame, text='Next Wavetable')
trigWavetableButton.bind('<Button-1>', self.trigger_waveform_handler)
trigWavetableButton.ref = 'voice_' + vid + "_trigger_wavetable"
trigWavetableButton.grid(row=counter)
cb_frame.grid(column=int(vid) + 2, row=5, sticky=E + W + N, rowspan=8)
for vid in voice_ids:
generation_types = ["random", "random_harmonic", "harmonic"]
partial_pools = ["even", "odd", "all"]
prefix = 'voice_' + vid + '_'
types_name = prefix + 'wavetable_generation_type'
pools_name = prefix + 'partial_pool'
setattr(self, types_name, StringVar())
getattr(self, types_name).set("random")
setattr(self, pools_name, StringVar())
getattr(self, pools_name).set("all")
target_frame = getattr(self, 'voice_' + vid + '_cb_frame')
gen_typ_frame = LabelFrame(target_frame, text="type")
gen_typ_frame.grid(row=len(target_frame.winfo_children()), sticky=W)
for gen_t in generation_types:
gen_t_entry = Radiobutton(gen_typ_frame, value=gen_t, text=gen_t, anchor=W,
variable=getattr(self, types_name))
gen_t_entry.bind('<ButtonRelease-1>', self.wt_handler)
gen_t_entry.ref = types_name
gen_t_entry.grid(row=len(gen_typ_frame.winfo_children()), sticky=W)
pp_frame = LabelFrame(target_frame, text="harmonics")
for pp in partial_pools:
pp_entry = Radiobutton(pp_frame, value=pp, text=pp, anchor=W,
variable=getattr(self, pools_name))
pp_entry.bind('<ButtonRelease-1>', self.wt_handler)
pp_entry.ref = pools_name
pp_entry.grid(row=len(pp_frame.winfo_children()), sticky=E + W)
this_num_partials = Scale(pp_frame, label='number of harmonics', orient=HORIZONTAL,
from_=1, to=24, resolution=1)
this_num_partials.ref = prefix + 'num_partials'
this_num_partials.grid(column=0, row=len(pp_frame.winfo_children()), sticky=E + W)
this_num_partials.bind("<ButtonRelease>", self.scale_handler)
pp_frame.grid(row=len(target_frame.winfo_children()), sticky=E + W)
示例3: EktaproGUI
# 需要导入模块: from Tkinter import Scale [as 别名]
# 或者: from Tkinter.Scale import bind [as 别名]
class EktaproGUI(Tk):
"""
Constructs the main program window
and interfaces with the EktaproController
and the TimerController to access the slide
projectors.
"""
def __init__(self):
self.controller = EktaproController()
self.controller.initDevices()
Tk.__init__(self)
self.protocol("WM_DELETE_WINDOW", self.onQuit)
self.wm_title("EktaproGUI")
self.bind("<Prior>", self.priorPressed)
self.bind("<Next>", self.nextPressed)
self.brightness = 0
self.slide = 1
self.timerController = TimerController(self.controller, self)
self.controlPanel = Frame(self)
self.manualPanel = Frame(self)
self.projektorList = Listbox(self, selectmode=SINGLE)
for i in range(len(self.controller.devices)):
self.projektorList.insert(END, "[" + str(i) + "] " + str(self.controller.devices[i]))
if self.projektorList.size >= 1:
self.projektorList.selection_set(0)
self.projektorList.bind("<ButtonRelease>", self.projektorSelectionChanged)
self.projektorList.config(width=50)
self.initButton = Button(self.controlPanel, text="init", command=self.initButtonPressed)
self.nextButton = Button(self.controlPanel, text="next slide", command=self.nextSlidePressed)
self.nextButton.config(state=DISABLED)
self.prevButton = Button(self.controlPanel, text="previous slide", command=self.prevSlidePressed)
self.prevButton.config(state=DISABLED)
self.startButton = Button(self.controlPanel, text="start timer", command=self.startTimer)
self.startButton.config(state=DISABLED)
self.pauseButton = Button(self.controlPanel, text="pause", command=self.pauseTimer)
self.stopButton = Button(self.controlPanel, text="stop", command=self.stopTimer)
self.stopButton.config(state=DISABLED)
self.timerLabel = Label(self.controlPanel, text="delay:")
self.timerInput = Entry(self.controlPanel, width=3)
self.timerInput.insert(0, "5")
self.timerInput.config(state=DISABLED)
self.timerInput.bind("<KeyPress-Return>", self.inputValuesChanged)
self.timerInput.bind("<ButtonRelease>", self.updateGUI)
self.fadeLabel = Label(self.controlPanel, text="fade:")
self.fadeInput = Entry(self.controlPanel, width=3)
self.fadeInput.insert(0, "1")
self.fadeInput.config(state=DISABLED)
self.fadeInput.bind("<KeyPress-Return>", self.inputValuesChanged)
self.fadeInput.bind("<ButtonRelease>", self.updateGUI)
self.standbyButton = Button(self.controlPanel, text="standby", command=self.toggleStandby)
self.standbyButton.config(state=DISABLED)
self.syncButton = Button(self.controlPanel, text="sync", command=self.sync)
self.syncButton.config(state=DISABLED)
self.reconnectButton = Button(self.controlPanel, text="reconnect", command=self.reconnect)
self.cycle = IntVar()
self.cycleButton = Checkbutton(
self.controlPanel, text="use all projectors", variable=self.cycle, command=self.cycleToggled
)
self.brightnessScale = Scale(self.manualPanel, from_=0, to=100, resolution=1, label="brightness")
self.brightnessScale.set(self.brightness)
self.brightnessScale.bind("<ButtonRelease>", self.brightnessChanged)
self.brightnessScale.config(state=DISABLED)
self.brightnessScale.config(orient=HORIZONTAL)
self.brightnessScale.config(length=400)
self.gotoSlideScale = Scale(self.manualPanel, from_=0, to=self.controller.maxTray, label="goto slide")
self.gotoSlideScale.set(1)
self.gotoSlideScale.bind("<ButtonRelease>", self.gotoSlideChanged)
self.gotoSlideScale.config(state=DISABLED)
self.gotoSlideScale.config(orient=HORIZONTAL)
self.gotoSlideScale.config(length=400)
self.controlPanel.pack(side=BOTTOM, anchor=W, fill=X)
self.projektorList.pack(side=LEFT, fill=BOTH)
self.manualPanel.pack(side=RIGHT, expand=1, fill=BOTH)
self.initButton.pack(side=LEFT, anchor=N, padx=4, pady=4)
self.prevButton.pack(side=LEFT, anchor=N, padx=4, pady=4)
self.nextButton.pack(side=LEFT, anchor=N, padx=4, pady=4)
self.cycleButton.pack(side=LEFT, anchor=N, padx=4, pady=4)
self.startButton.pack(side=LEFT, anchor=N, padx=4, pady=4)
self.pauseButton.pack(side=LEFT, anchor=N, padx=4, pady=4)
self.stopButton.pack(side=LEFT, anchor=N, padx=4, pady=4)
self.timerLabel.pack(side=LEFT, anchor=N, padx=4, pady=4)
#.........这里部分代码省略.........
示例4: Cockpit
# 需要导入模块: from Tkinter import Scale [as 别名]
# 或者: from Tkinter.Scale import bind [as 别名]
#.........这里部分代码省略.........
"D": 0.0
}
}
}
self.parent = parent
self.initUI()
self._controlKeysLocked = False
if not isDummy:
self._link = INetLink(droneIp, dronePort)
else:
self._link = ConsoleLink()
self._link.open()
self._updateInfoThread = Thread(target=self._updateInfo)
self._updateInfoThreadRunning = False
self._readingState = False
self._start()
def initUI(self):
self.parent.title("Drone control")
self.style = Style()
self.style.theme_use("default")
self.pack(fill=BOTH, expand=1)
self.parent.bind_all("<Key>", self._keyDown)
self.parent.bind_all("<KeyRelease>", self._keyUp)
if system() == "Linux":
self.parent.bind_all("<Button-4>", self._onMouseWheelUp)
self.parent.bind_all("<Button-5>", self._onMouseWheelDown)
else:
#case of Windows
self.parent.bind_all("<MouseWheel>", self._onMouseWheel)
#Commands
commandsFrame = tkFrame(self)
commandsFrame.grid(column=0, row=0, sticky="WE")
self._started = IntVar()
self._startedCB = Checkbutton(commandsFrame, text="On", variable=self._started, command=self._startedCBChanged)
self._startedCB.pack(side=LEFT, padx=4)
# self._integralsCB = Checkbutton(commandsFrame, text="Int.", variable=self._integralsEnabled, \
# command=self._integralsCBChanged, state=DISABLED)
# self._integralsCB.pack(side=LEFT, padx=4)
self._quitButton = Button(commandsFrame, text="Quit", command=self.exit)
self._quitButton.pack(side=LEFT, padx=2, pady=2)
# self._angleLbl = Label(commandsFrame, text="Angle")
# self._angleLbl.pack(side=LEFT, padx=4)
#
# self._angleEntry = Entry(commandsFrame, state=DISABLED)
# self._angleEntry.pack(side=LEFT)
#Info
示例5: Cockpit
# 需要导入模块: from Tkinter import Scale [as 别名]
# 或者: from Tkinter.Scale import bind [as 别名]
#.........这里部分代码省略.........
"D": 0.0
}
}
}
self.parent = parent
self.initUI()
self._controlKeysLocked = False
if not isDummy:
self._link = INetLink(droneIp, dronePort)
else:
self._link = ConsoleLink()
self._link.open()
self._updateInfoThread = Thread(target=self._updateInfo)
self._updateInfoThreadRunning = False
self._readingState = False
self._start()
def initUI(self):
self.parent.title("Drone control")
self.style = Style()
self.style.theme_use("default")
self.pack(fill=BOTH, expand=1)
self.parent.bind_all("<Key>", self._keyDown)
self.parent.bind_all("<KeyRelease>", self._keyUp)
if system() == "Linux":
self.parent.bind_all("<Button-4>", self._onMouseWheelUp)
self.parent.bind_all("<Button-5>", self._onMouseWheelDown)
else:
#case of Windows
self.parent.bind_all("<MouseWheel>", self._onMouseWheel)
#Commands
commandsFrame = tkFrame(self)
commandsFrame.grid(column=0, row=0, sticky="WE")
self._startedCB = Checkbutton(commandsFrame, text="On", variable=self._started, command=self._startedCBChanged)
self._startedCB.pack(side=LEFT, padx=4)
self._integralsCB = Checkbutton(commandsFrame, text="Int.", variable=self._integralsEnabled, \
command=self._integralsCBChanged, state=DISABLED)
self._integralsCB.pack(side=LEFT, padx=4)
self._quitButton = Button(commandsFrame, text="Quit", command=self.exit)
self._quitButton.pack(side=LEFT, padx=2, pady=2)
# self._angleLbl = Label(commandsFrame, text="Angle")
# self._angleLbl.pack(side=LEFT, padx=4)
#
# self._angleEntry = Entry(commandsFrame, state=DISABLED)
# self._angleEntry.pack(side=LEFT)
#Info
infoFrame = tkFrame(self)