3D Forum > Blender - erstellte Checkbox mittels Hotkey toggeln?

Blender - erstellte Checkbox mittels Hotkey toggeln?

23.07.2016 13:14
 
TilesSa. 23 Jul. 2016, 13:14 Uhr
Hi Leute. Ich stehe mal wieder auf dem Schlauch ^^

Ich habe mir in Blender mittels Python eine Checkbox erstellt. Die würde ich nun gern per Hotkey toggeln können. Das Problem geht schon damit los dass ich mit meinem Python Befehl gar keinen RNA Operator an die Strippe bekomme. Wie denn auch, es gibt ja keinen. Nur die BoolProperty. Und somit tut der Hotkey gar nichts.

Wie kriege ich denn eine Checkbox gezüchtet die sich mittels Hotkey toggeln lässt? Und wie müsste denn das Hotkeysetup aussehen damit das Toggeln funktioniert?

LG

Tiles
 
 
TilesSa. 23 Jul. 2016, 18:55 Uhr
Einen Schritt weiter, und immer noch nicht am Ziel :'3

Das ginge theoretisch über wm.context_toggle. Aber irgendwie streikt Blender bei dem Context Attribute. Obwohl ich genau das aus dem Tooltip der Checkbox verwende. Ich bekomme eine Warnung um die Ohren. Object has no attribute WindowManager.

Jemand ne Idee wie hier das richige Attribut lautet? Geht das überhaupt so wie ich mir das vorstelle? Weil ist ja eine hausgemachte Checkbox.

import bpy
from bpy.props import BoolProperty

class LayoutDemoPanel(bpy.types.Panel):
bl_label = "Demo Panel"
bl_space_type = 'VIEW_3D'
bl_region_type = 'UI'

def draw(self, context):
layout = self.layout

wm = context.window_manager # Our bool is in the windows_manager
layout.prop(wm, "deselect_bool") # Our checkbox

def register():
bpy.types.WindowManager.deselect_bool = bpy.props.BoolProperty(
name="Checkbox", description="A checkbox", default = False)
bpy.utils.register_module(__name__)

def unregister():
del bpy.types.WindowManager.deselect_bool # Unregister our flag when unregister.
bpy.utils.unregister_module(__name__)

if __name__ == "__main__":
register()
 
 
TilesSo. 24 Jul. 2016, 10:12 Uhr
Wieder nen Schritt weiter. Der Dank geht an Blender Stack Exchange. Der Content Attribute Begriff den ich gesucht habe lautet window_manager.deselect_bool

Damit tut jetzt der Hotkey. Wäre ja auch zu einfach gewesen wenn der Python Begriff im Tooltip wirklich der Begriff gewesen wäre den man verwenden kann ... ^^

Womit wir beim nächsten Problem wären. Die Checkbox im Panel macht kein Update. Die zeigt den derzeitigen Status erst wenn ich extra mit der Maus drüber fahre.

Weiss jemand wie ich den Panelinhalt zum updaten bringe wenn ich den Hotkey drücke? smile
 
TilesMo. 25 Jul. 2016, 20:03 Uhr
Die Jungs auf Blender Stack Exchange haben mir da eine Lösung gebaut. Nun muss ich sie nur noch verstehen und für meine Zwecke zurechtbiegen ^^

http://blender.stackexchange.com/questions/58486/add-toggle-hotkey-to-custom-checkbox
 
 

 


 
 
© 3D-Ring - deutsche 3D Software Community, Archiv 2001 - 2006