[pygtk] Win32 file chooser

John Pye john.pye at student.unsw.edu.au
Thu Mar 9 13:39:50 WST 2006


I've posted a working version of this direct from the demo scripts in
the win32all package.

See http://www.async.com.br/faq/pygtk/index.py?req=show&file=faq21.013.htp

Cheers
JP

Nikos Kouremenos wrote:
> Chris, is it possible you could put a comment or two and add it to the FAQ?
>
> thanks in advance
>
> On 3/6/06, Chris Lambacher <chris at kateandchris.net> wrote:
>   
>> I use MFC CreateFileDialog provided by win32ui in win32all.
>>
>> Here is something that works on win2k and XP for sure:
>>
>> filtertypes = [('All Font Files (*.ttf, *.otf, *.pfm)',
>>                         ('*.ttf','*.otf', '*.pfm')),
>>                ('True Type Font Files (*.ttf)', ('*.ttf',)),
>>                ('Open Type Font Files (*.otf)', ('*.otf',)),
>>                ('Type 1 Font files (*.pfm)', ('*.pfm',)),
>>                ('All Files (*.*)', ('*',))]
>>
>> filters = []
>> for fil_name, fil_exts in filtertypes:
>>     filter = '|'.join((fil_name, ';'.join(fil_exts)))
>>     filters.append(filter)
>>
>> filter = '|'.join(filters+[''])
>>
>> dlg = win32ui.CreateFileDialog( True, None, None,
>>                                 win32con.OFN_HIDEREADONLY |
>>                                 win32con.OFN_OVERWRITEPROMPT |
>>                                 win32con.OFN_FILEMUSTEXIST, filter)
>>
>> dlg.SetOFNTitle('Select font file')
>>
>> response = dlg.DoModal()
>> if response != win32con.IDOK:
>>     return
>>
>> filename = dlg.GetPathName()
>> del dlg
>>
>>
>> On Mon, Mar 06, 2006 at 12:27:19PM +1100, John Pye wrote:
>>     
>>> Hi all,
>>>
>>> Has anyone had any success getting the following example from the FAQ to
>>> run?
>>>
>>> http://www.async.com.br/faq/pygtk/index.py?req=show&file=faq21.013.htp
>>>
>>> For me, running with Python 2.4 on Win2k, it doesn't work:
>>>
>>>       
>>>> Exception in thread Thread-12:
>>>> Traceback (most recent call last):
>>>>   File "C:\Python24\lib\threading.py", line 442, in __bootstrap
>>>>     self.run()
>>>>   File "C:\Python24\lib\threading.py", line 422, in run
>>>>     self.__target(*self.__args, **self.__kwargs)
>>>>   File "examplewinfile.py", line 12, in run_dialog
>>>>     s = winfilechooser._test("This is a dialog", "C:\\WINDOWS")
>>>>   File "g:\ascend\pygtk\interface\winfilechooser.py", line 132, in _test
>>>>     if win32gui.GetOpenFileName(cs1.data):
>>>> TypeError: Argument must be a 88-byte string
>>>>         
>>> Any suggestions?
>>>
>>> Cheers
>>> JP
>>>
>>> --
>>> John Pye
>>> School of Mechanical and Manufacturing Engineering
>>> The University of New South Wales
>>> Sydney  NSW 2052  Australia
>>> t +61 2 9385 5127
>>> f +61 2 9663 1222
>>> mailto:john.pye_AT_student_DOT_unsw.edu.au
>>> http://pye.dyndns.org/
>>>
>>> _______________________________________________
>>> pygtk mailing list   pygtk at daa.com.au
>>> http://www.daa.com.au/mailman/listinfo/pygtk
>>> Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
>>>       
>> _______________________________________________
>> pygtk mailing list   pygtk at daa.com.au
>> http://www.daa.com.au/mailman/listinfo/pygtk
>> Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
>>
>>     
>
>
> --
> Nikos Kouremenos
>   

-- 
John Pye
School of Mechanical and Manufacturing Engineering
The University of New South Wales
Sydney  NSW 2052  Australia
t +61 2 9385 5127
f +61 2 9663 1222
mailto:john.pye_AT_student_DOT_unsw.edu.au
http://pye.dyndns.org/



More information about the pygtk mailing list