Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm used to program with Python and GTK using pygtk library.

I feel like my programs are not well separated according to MVC model. I think following a framework it would help me to design better desktop applications.

I'd like to know which Python MVC framework for desktop apps you're using and why.

share|improve this question

2 Answers 2

You don't need a framework. Create a class called Model, another one called View and a third one named Controller and start coding. Put all of the UI code in the View class, your data structures in the Model class, and make sure they communicate only via the Controller. I think going through that exercise might teach you a lot.

I'm not trying to be funny here, it's really not very complicated, and doesn't require a fancy framework.

share|improve this answer
1  
A single class in any container there is probably going to be a horrible practice given any nontrivial program. –  Rig Nov 18 '11 at 4:06
1  
Well, I'm not saying to create only three classes. That's just a starting point. –  Bryan Oakley Nov 18 '11 at 12:17

first, I think Qt, and even it's Python bindings are way better structured than GTK; so you could first try it.

second, it seems you're slightly confused by the MVC buzzword. It was originally defined as a modular architecture for GUI applications; unfortunately, there's a completely different layered architecture for Web apps also called MVC.

Maybe you feel your desktop apps are not very MVC because there not very web MVC, but they might be very GUI MVC nonetheless.

share|improve this answer
    
+1 for Qt, I'd recommend PySide instead of PyQt4. –  OneOfOne Nov 30 '10 at 21:58
1  
-1 for Qt. Not because I dislike it -- I've never used it -- but because a personal opinion on a choice of tool doesn't address the question being asked IMO. That, and toolkit wars, like editor wars, are so tiresome. Also -1 because this is the first time I've ever heard of "web mvc". To say there is somehow a distinction without giving any information to back that claim up isn't very useful. –  Bryan Oakley Nov 18 '11 at 1:33
    
so you're downvoting because you don't know what i'm talking about, right? –  Javier Nov 18 '11 at 1:56
    
@Javier: no, I'm down-voting because you said things that didn't make sense, and you didn't provide any facts or references to back up your statements. Bottom line: in my opinion, nothing in your answer is at all helpful to the person who asked the question. If you take the time to describe exactly how these two definitions of MVC are so completely different, your answer might be very enlightening and useful. As it stands, it's just adding to the confusion. –  Bryan Oakley Nov 18 '11 at 3:59

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.