• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Making tools with Python (or C#?)

Karstein

Senior member
I'm currently looking at making a tool in Python but am really more of a designer than a coder when it comes down to it (I'm the sort who spends ages making wireframes look nice). In this case, I would like to explore some of the options that are offered with Python to assist with general dialog design and such so that I can divert my coding focus to the nitty-gritty.

What would people recommend? I've heard stuff like Glade, Wax, PyGTK and Dabo thrown around (and will be trying some of those) but thought I'd see what experiences and suggestions that you guys have.

The other option is to use Visual C# but that would require some more learning on my side first. Would anyone recommend this path over Python?
 
Visual C# has a ton of libraries focused on graphical work (.Net is chock full of them). It is also going to offer a better Gui development interface.

Python on the other hand is going to be cross platform compatible (if that is important to you). From what I can tell, it has a few more specialized math/science libraries as well.

For something like this, it really comes down to preference.
 
You'll get it 'done' faster in Python. First, you don't have to learn a new language. Second, Python is commonly regarded as "high-productivity", even among this contentious forum crowd. These are both important features if you're not coding for fun -- i.e., if you're coding because you want the tool, not because you want to code.

I would suggest you start at http://wiki.python.org/moin/GuiProgramming.
1. Pick your platform of interest
2. Among the options that work on that platform, pick the one that has the best documentation.
3. Report your findings here!
 
You'll get it 'done' faster in Python. First, you don't have to learn a new language. Second, Python is commonly regarded as "high-productivity", even among this contentious forum crowd. These are both important features if you're not coding for fun -- i.e., if you're coding because you want the tool, not because you want to code.

I would suggest you start at http://wiki.python.org/moin/GuiProgramming.
1. Pick your platform of interest
2. Among the options that work on that platform, pick the one that has the best documentation.
3. Report your findings here!

Does python have any sort of layout tool? Just wondering. That really is the thing that I could see making C# faster than python for development. You need a button here, place it with the drawing tool.

Though, you're right, already knowing python means that it might be faster for development just because you don't have to learn a new language.
 
Does python have any sort of layout tool? Just wondering. [snip]

Beats me. I'm a commandline guy (GUIs are for the weak). But coding the functionality behind the button is usually more challenging than placing the button itself. Usually. Unless its MFC, in which case all bets are off and your button may become a permanent feature of the user's desktop environment, erasable only with a complete reformat of the disk.
 
Ever since I tried Visual Basic something like 15 years ago, I've been looking for a similar layout tool for other languages. MS Visual Studio is great for that; Java might have one now, but nothing else I've seen even comes close.

The nice thing about .NET is, or used to be, that you could work with different languages on the same project. I heard IronPython lost MS support, but it's still been updated recently. You have to know the .NET libraries when using it, but you might like it better than pure C#.
 
wxWidgets can be used with python and has gui editors (paid and free) I used it with a cross platform (OSX / XP) project written in C++ about 4 years ago. I though it was pretty good although I have not tried it with python. The one cool thing that I liked was that it used native gui elements for OSX, windows, or linux (GTK), so the application didn't look so out of place running on the OS. And, it had an OpenGL widget that I needed.
 
wxWidgets can be used with python and has gui editors (paid and free) I used it with a cross platform (OSX / XP) project written in C++ about 4 years ago. I though it was pretty good although I have not tried it with python. The one cool thing that I liked was that it used native gui elements for OSX, windows, or linux (GTK), so the application didn't look so out of place running on the OS. And, it had an OpenGL widget that I needed.

Meh, I never really liked wxWidgets. It always felt so extremely bloated. (not that GTK or anyone else really does a much better job.) That, and the bugs were sort of annoying.
 
Meh, I never really liked wxWidgets. It always felt so extremely bloated. (not that GTK or anyone else really does a much better job.) That, and the bugs were sort of annoying.

I never really found any major bugs, but my app was a specialized image viewer and gui wise it was not that complicated. The key for me was that it was completely free on OSX and Windows which at the time I started using it Qt was not. True about the bloat, but if you are doing something cross platform your only other choice it so to write 2 or more native interface code paths, which can make maintenance more difficult.

Does the OP need cross platform? If not I don't think anything touches MSVS, so I would learn C# or something else in MSVS. Also is your tool more logic complicated or qui complicated? Lots of logic and simple gui just hand write the gui or use something like wxWidgets. Simple logic and complicated gui use MSVS.
 
If you like Python but also want to leverage all that comes with the .Net framework, Iron Python has really surged in popularity, and might be worth checking out
 
Does the OP need cross platform? If not I don't think anything touches MSVS, so I would learn C# or something else in MSVS. Also is your tool more logic complicated or qui complicated? Lots of logic and simple gui just hand write the gui or use something like wxWidgets. Simple logic and complicated gui use MSVS.
Cross platform is important (needs to run on Macs too). The GUI itself isn't that complex, it'll be used by more than me, though.

Thanks for the responses, guys. At this stage, it looks like I'm just going to go with Python (Pydev through Eclipse) and wxPython and see how things materialize.
 
Cross platform is important (needs to run on Macs too). The GUI itself isn't that complex, it'll be used by more than me, though.

Thanks for the responses, guys. At this stage, it looks like I'm just going to go with Python (Pydev through Eclipse) and wxPython and see how things materialize.

Sounds like a good choice. Good luck, and have fun with it.
 
Back
Top