Operator popup invoke (show operator properties and execute it automatically on changes)
Code based on How to call a confirmation dialog box?, I just replaced invoke_props_dialog
by invoke_props_popup
to diplay the popup without confirmation option:

import bpy
class SimplePropConfirmOperator(bpy.types.Operator):
"""Really?"""
bl_idname = "my_category.custom_confirm_dialog"
bl_label = "Do you really want to do that?"
bl_options = {'REGISTER', 'UNDO'}
prop1: bpy.props.BoolProperty()
prop2: bpy.props.BoolProperty()
@classmethod
def poll(cls, context):
return True
def execute(self, context):
self.report({'INFO'}, "YES!")
return {'FINISHED'}
def invoke(self, context, event):
return context.window_manager.invoke_props_popup(self, event)
def draw(self, context):
row = self.layout
row.prop(self, "prop1", text="Property A")
row.prop(self, "prop2", text="Property B")
class OBJECT_PT_CustomPanel(bpy.types.Panel):
bl_label = "My Panel"
bl_idname = "OBJECT_PT_custom_panel"
bl_space_type = "VIEW_3D"
bl_region_type = "UI"
bl_category = "Tools"
bl_context = "objectmode"
def draw(self, context):
layout = self.layout
layout.operator(SimplePropConfirmOperator.bl_idname)
def register():
bpy.utils.register_class(OBJECT_PT_CustomPanel)
bpy.utils.register_class(SimplePropConfirmOperator)
def unregister():
bpy.utils.unregister_class(SimplePropConfirmOperator)
bpy.utils.unregister_class(OBJECT_PT_CustomPanel)
if __name__ == "__main__":
register()