<p>I'm developing a graphical application to present data (not a game but a real workhorse app). It needs to be cross platform, so I have chosen:</p>

<ul>
<li>python</li>
<li>openGL (I need 3D, blending, textures etc)</li>
<li>pyopengl</li>
<li>wx/pywx - windowing, dialogs etc.</li>
</ul>

<p>The last component - WX - raises the question. I can put together a very nice looking app (the prototypes look slick) - but when I need to interact with the user to ask questions, get input, I have to use WX. It makes the app look inconsistent to have traditional UI with traditional dialogs and combos and text entry on top of a full screen 3D app with blending, smooth motion, textures etc.</p>

<p>Has anyone developed a GUI using OpenGL and python? Can you share with me the toolkits and/or tricks you used? I need combos, text entry, buttons, radios, option buttons, tree view.</p>

<p>There are some toolkits out there, but they are either incomplete or old and unmaintained. A great example is pyUI (<a href="http://pyui.sourceforge.net/" rel="nofollow noreferrer">http://pyui.sourceforge.net/</a>) - looks slick but untouched for years.</p>

[{'answer_id': 78397, 'author': 'SCdF', 'author_id': 1666, 'author_profile': 'https://Stackoverflow.com/users/1666', 'pm_score': 1, 'selected': False, 'text': '<p>You might want to look at <a href="http://clutter-project.org/" rel="nofollow noreferrer">Clutter</a>, it looks pretty cool. I haven\'t used it yet but I intend to in an upcoming personal project.</p>\n'}, {'answer_id': 78404, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 4, 'selected': False, 'text': "<p>This is not an answer, more of a plea: Please don't do that.</p>\n\n<p>Your reimplemented widgets will lack all sorts of functionality that users will miss. Will your text-entry boxes support drag'n'drop? Copy/paste? Right-to-left scripts? Drag-select? Double-click-select? Will all these mechanisms follow the native conventions of each platform you support?</p>\n\n<p>With Wx your widgets might look inconsistant with the app, but at least they'll look consistant with the OS which is just as important. And more importantly, they'll do what users expect.</p>\n\n<p>(edit) Three posts, and -3 points? Screw this den of karma-whores. Original poster: I have implemented a basic set of widgets in OpenGL (for a game UI) and it was an endless nightmare of a job.</p>\n"}, {'answer_id': 78483, 'author': 'pobk', 'author_id': 7829, 'author_profile': 'https://Stackoverflow.com/users/7829', 'pm_score': 1, 'selected': False, 'text': "<p>Try Qt instead of wx.</p>\n\n<p>QT is cross platform, and you can style things alot using CSS. It's extremely well documented and has excellent python bindings. In point of fact, I use the C++ documentation and not the PyQT documentation.</p>\n"}, {'answer_id': 78589, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<p>Python + Qt + OpenGL -\nI surely believe any application can be written faster and better using python.\nQT4 is cross-platform, beautifull, implements everything you need from widgets (acessibility, etc...), and...it integrates with OpenGL. That means, you can simply have a widget that is a viewport to openGL stuff you render in your code.</p>\n\n<p>Another 3D capable solution  that would cover most things, but not so nioce on user interface is to extend Blender3D with a python script. It has the 3d capabilities and rendering , you script it in python all of the same, and it would be cross platform - and you get higher level tools for woriking with the 3D things than openGL alone.\nThere are obvious drawbacks, mainly from the UI standpoint when compared with PyQT but it could be done. </p>\n'}, {'answer_id': 85490, 'author': 'Martin Beckett', 'author_id': 10897, 'author_profile': 'https://Stackoverflow.com/users/10897', 'pm_score': 1, 'selected': False, 'text': '<p>Both wx and QT do an excellent job of creating an application that matches the OS look and feel.\nIt is also possible to implment all the widgets yourself directly in openg, this slashdot post lists some of the sets available </p>\n\n<p><a href="http://ask.slashdot.org/askslashdot/02/12/24/1813219.shtml?tid=156" rel="nofollow noreferrer">http://ask.slashdot.org/askslashdot/02/12/24/1813219.shtml?tid=156</a>\nfox is probably the most developed but looks like windows on all platforms.</p>\n'}, {'answer_id': 138630, 'author': 'Harald Scheirich', 'author_id': 22080, 'author_profile': 'https://Stackoverflow.com/users/22080', 'pm_score': 3, 'selected': False, 'text': '<p>In the latest releases of QT you can draw widgets <em>into</em> your OpenGL context, if you really would like to do something like that. Otherwise there is <a href="http://www.cegui.org.uk/wiki/index.php/Main_Page" rel="noreferrer">CEGui</a> that is used in some game engines. </p>\n\n<p>Implementing GUI Widgets yourself unless you want to edify yourself is a waste of your time, unless you would be satisfied with the most rudimentary of looks and functionality. </p>\n'}, {'answer_id': 7697287, 'author': 'Tcll', 'author_id': 985411, 'author_profile': 'https://Stackoverflow.com/users/985411', 'pm_score': 1, 'selected': False, 'text': '<p>Blender is the only app I know of with a GUI written fully in OpenGL...\nthe only problem is it\'s in C++.</p>\n\n<p>I\'m a Python developer as well, but I\'m just getting into using OGL</p>\n\n<p>I honestly don\'t think there are any toolkits to develop a GUI in OGL...</p>\n\n<p>the Blender developers are giving me runaround documentation instead of direct help...\nbut I\'ll let you know what I figure out ;)</p>\n\n<p>EDIT:\nhere\'s a bit of documentation on PyOpenGL\'s functions:\n<a href="http://pyopengl.sourceforge.net/documentation/manual/reference-GLUT.html" rel="nofollow">http://pyopengl.sourceforge.net/documentation/manual/reference-GLUT.html</a></p>\n'}, {'answer_id': 7697572, 'author': 'Tcll', 'author_id': 985451, 'author_profile': 'https://Stackoverflow.com/users/985451', 'pm_score': -1, 'selected': False, 'text': '<p>my friend.<br>\nI believe I have found your answer ;)<br>\n<a href="http://glinter.sourceforge.net/" rel="nofollow">http://glinter.sourceforge.net/</a></p>\n\n<p>I havn\'t yet tried it, but it seems quite promising.\n(I\'ll edit this if it doesn\'t work)</p>\n\n<p>EDIT:<br>\neh...<br>\nit uses Tk, PMW, and WX...<br>\n(not quite what I want)</p>\n\n<p>you can give the CVS download a try...<br>\n(there\'s no released packages, but the CVS runs)</p>\n'}, {'answer_id': 26485404, 'author': 'Silvester Mühlhaus', 'author_id': 4165606, 'author_profile': 'https://Stackoverflow.com/users/4165606', 'pm_score': 0, 'selected': False, 'text': '<p>"<a href="http://cegui.org.uk" rel="nofollow">cegui</a>" is a good choise there is also a gui editor called "ceed" to generate the layout xml files. cegui also has python bindings and its well documented and used in many game engines</p>\n'}]
['https://Stackoverflow.com/questions/78238', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/-1/']