mihail.dark2
(ΠΠΈΡ
Π°ΠΈΠ» Π‘Π΅ΡΠΌΡΠΆΠΊΠΎ)
1
Hi!
How set default filename for fileDialog, inherited from (Operator, ImportHelper)?
This code:
class OpenFileDialog(Operator, ImportHelper):
bl_idname = "test.open_filebrowser"
bl_label = "Open the file browser (yay)"
filter_glob: StringProperty(
default='*.json',
options={'HIDDEN'} )
def execute(self, context):
"""Do something with the selected file(s)."""
filename, extension = os.path.splitext(self.filepath)
print('Selected file:', self.filepath)
print('File name:', filename)
print('File extension:', extension)
print('Some Boolean:', self.some_boolean)
return {'FINISHED'}
There might be a slightly less hacky way but this should do it. Add this to your class methods :
def invoke(self, context, events):
self.filename = "my_file_name.json"
return super().invoke(context, events)
FYI this is where the helper class is defined https://github.com/blender/blender/blob/master/release/scripts/modules/bpy_extras/io_utils.py#L92-L105
Thatβs too bad, but if you want some more help youβll have to post a little bit more of your code
mihail.dark2
(ΠΠΈΡ
Π°ΠΈΠ» Π‘Π΅ΡΠΌΡΠΆΠΊΠΎ)
5
Heare more code:
class OpenFileDialog(Operator, ImportHelper):
bl_idname = "test.open_filebrowser"
bl_label = "Open the file browser (yay)"
filter_glob: StringProperty(
default='*.json',
options={'HIDDEN'} )
some_boolean: BoolProperty(
name='Do a thing',
description='Do a thing with the file you\'ve selected',
default=True, )
def execute(self, context):
"""Do something with the selected file(s)."""
filename, extension = os.path.splitext(self.filepath)
print('Selected file:', self.filepath)
print('File name:', filename)
print('File extension:', extension)
print('Some Boolean:', self.some_boolean)
return {'FINISHED'}
def register():
bpy.utils.register_class(OpenFileDialog)
def unregister():
bpy.utils.unregister_class(OpenFileDialog)
if __name__ == "__main__":
print("--------------------------------------------")
register()
bpy.ops.test.open_filebrowser('INVOKE_DEFAULT')
Try with this
import bpy
from bpy_extras.io_utils import ImportHelper
class OpenFileDialog(bpy.types.Operator, ImportHelper):
bl_idname = "test.open_filebrowser"
bl_label = "Open the file browser (yay)"
filter_glob: bpy.props.StringProperty(
default='*.json',
options={'HIDDEN'} )
some_boolean: bpy.props.BoolProperty(
name='Do a thing',
description='Do a thing with the file you\'ve selected',
default=True, )
def invoke(self, context, events):
self.filepath = "test.json"
return super().invoke(context, events)
def execute(self, context):
"""Do something with the selected file(s)."""
filename, extension = os.path.splitext(self.filepath)
print('Selected file:', self.filepath)
print('File name:', filename)
print('File extension:', extension)
print('Some Boolean:', self.some_boolean)
return {'FINISHED'}
def register():
bpy.utils.register_class(OpenFileDialog)
def unregister():
bpy.utils.unregister_class(OpenFileDialog)
if __name__ == "__main__":
print("--------------------------------------------")
register()
bpy.ops.test.open_filebrowser('INVOKE_DEFAULT')
1 Like