[Edu-sig] re: Pygeo, platforms, wx and Tk
Kent Johnson
kent37 at tds.net
Wed Dec 15 13:36:20 CET 2004
Thanks for the explanation. I didn't realize that the two panels are using different GUI frameworks.
I don't know how to make that work...
Kent
Arthur wrote:
> Kent writes -
>
>>Arthur wrote:
>>
>>>So I have 2 windows - one is a Display for the VPython rendering and is
>>>actually constructed as a class derived from the VPython display object
>>>(native on Windows, GTK1 on linux) The other is a TK control panel.
>>>
>>>The user can interact with either - pick and move points, for example,
>>
>>in
>>
>>>the Display, or reveal or hide construction levels from the control
>>
>>Panel.
>>
>>>So each must be in a loop, and the 2 windows need to be able to
>>
>>communicate
>>
>>>with to each other as to any user action.
>>
>>I don't understand what the loop is doing. It sounds like you are polling
>>the panel for changes
>>instead of using event callbacks and the GUI event loop.
>
>
>>Maybe you know this - normally in a GUI application you register callback
>>handlers with the widgets
>>in the gui. So when a field changes a handler function is called to do
>>whatever you want. No
>>explicit loop is needed.
>
>
>
> I am not sure what you are saying. By "be in a loop" I think I am referring
> to the same GUI event loop to which you are referring. My TK "loop" is
> nothing but the GUI event loop, using the event callbacks,
>
>
>>You certainly should be able to create a GUI app with two panels that
>>respond to user input without
>>explicitly creating any threads.
>
>
> I think I understand that this is trivial, when the two panels of the GUI
> app are using the same GUI toolkit. That is specifically the kind of thing
> that GUI toolkits are designed to handle, and why Aahz asks why someone
> would want to multi-thread a TK application.
>
> And the fact is I don't want to multi-thread a TK application. What I want
> is a single TK thread and a single GTK thread, and the capacity to
> communicate between them, bi-directionally.
>
> Well, this is not really what I want;) But it is the problem that the
> circumstances put on my plate, as I am interpreting the circumstances and
> the problem.
>
> How could I have 2 windows from 2 different windowing toolkits, each
> responsive to user interaction, without running them as separate threads?
>
> Then I have also heard it said, as an opinion, that threading is usually
> the wrong solution for communication between processes. But when we get
> into to the distinction between separate processes and separate threads, I
> am in territory with which I am unfamiliar.
>
> The problem of running the old IDLE with VPython was, I think, one of making
> room for two processes, rather than 2 threads to run, without interference.
> And it was solved. Using sockets? But then, in this case, no input to IDLE
> needs to be handled *while* a VPython window runs. So I think my problem is
> distinguished.
>
> All that said, I am not *convinced* that there is not a trivial solution
> here. The solution on Windows is trivial enough. But my assumption that it
> was a crossplatform solution, at least as to the specifics of my
> implementation, was apparently naïve.
>
> Art
>
>
>
More information about the Edu-sig
mailing list