VB6 frontend GUI with Python

Claire Blair no.reply at here.com
Tue Nov 20 11:11:42 CET 2007



Diez B. Roggisch wrote:
> Claire Blair wrote:
> 
> 
>>I am trying to write a VB6 (not VB.Net) application that has a console
>>window that allows Python command to be typed at the prompt.
>>
>>The idea is so that, I can have full Python scripting from within my
>>application. I should be able to type commands from a Python script
>>(include import etc, so I can use other Python libraries). In other
>>words, I want to provide a complete (or almost complete) interactive
>>Python Scripting environment from within my application - so that I
>>enter commands in the VB6 console, and I get the (text) results
>>displayed in my VB6 console, and in the case of a graphic output (let
>>say I am importing wxPython for graphing functionality), I would have
>>the graph display after I have typed my command in my VB6 console.
>>
>>My initial route was to try to embed the Python interpreter, using BOOST
>>Python, writing a Win32 DLL around that and then calling the functions
>>from VB6. But I had various problems with that approach - so I am now
>>looking to use a Python COM server approach (although I would have
>>preferred not to touch COM).
>>
>>I have done a lot of Googling and research online - but I can't find
>>anything remotely useful, taht shows me how to do what I want to do. If
>>anyone has done something similar to what I am trying to do, or knows of
>>any links that may show me how to do provide a VB6 frontend GUI (i.e.
>>console) fo ruse with Python, I will be very grateful.
> 
> 
> You keep talking about "a console", but OTOH you want to use wxPython -
> which clearly is not console, but GUI. So I'm not really sure what you are
> after.

Yes, this seems to be confusing a lot of people. I want to be able to 
use various existing plotting libraries (most of which use wxPython or 
pyOpenGL). The end result is that (assuming my paths etc have been 
correctly set), I can type something like this in my console:

 >>> import someGraphingModule
 >>> # a few other commands to fetch data etc ...
 >>>
 >>> # The following line will then open a window (using
 >>> # wxPython, wxOpenGL (or whatever windowing library is
 >>> # is provided by module someGraphingModule
 >>> someGraphingModule.plotdata


> 
> It might be possible to make wx render into a given window-handle. 
> 
> But may I ask: what is the reason for using VB at all? Why not do the
> GUI-frontend in wxPython?
> 
> Diez

Simple. its because my main application (the GUI that is), is written in 
VB6. I have  a MDI application (i.e. many child windows in the same 
application), and I want to use one of these windows as a console to 
inteactively type Python commands. If I were to use wxPython, I would 
not be able to treat the console 'the same' as the other child windows 
in the application (i.e. minimize, close all etc). Maybe a simpler way 
to think of this is to imagine that I am writing a PythonWin clone in 
VB6. What I am asking here, is how can I create the 'Interactive Window' ?



More information about the Python-list mailing list