[SPLIT] Future of Widgets in Qt
[NOTE: This is a split of the original Thread "Best way to manage UI layout in Qt":http://developer.qt.nokia.com/forums/viewthread/3050 due to being a topic on its own, Volker]
You can freely mix approaches using .ui files and hand crafted layouts even. Both have advantages and uses. If your layout is not going to be dynamic, I'd recommend using .ui files. They are not considdered "the old way" or anything like that.
While fcochik is right, and QWidgets are not depricated, they don't currently have the focus of the Trolls anymore. Issues on Jira are being closed because of this, for instance. Still, for many situations, I think QWidgets are still way more suitable than QML. QML is nice for highly flashy UI, with smooth animations and the likes, but not so much for the typical desktop app with lots of input, buttons, menus, etc.
[quote author="Andre" date="1294393121"]While fcochik is right, and QWidgets are not depricated, they don't currently have the focus of the Trolls anymore. Issues on Jira are being closed because of this, for instance.[/quote]
Just for curiosity, do you have some examples?
For the rest I can only second my pre-commentators.
[quote author="Volker" date="1294405147"][quote author="Andre" date="1294393121"]While fcochik is right, and QWidgets are not depricated, they don't currently have the focus of the Trolls anymore. Issues on Jira are being closed because of this, for instance.[/quote]
Just for curiosity, do you have some examples?
Well, look at this one for instance: http://bugreports.qt.nokia.com/browse/QTBUG-14601
It states in the comments:
[quote]Given that we are focusing more on QML than in widgets, I'll close this task for now.[/quote]
The rest of the comments are quite revealing as well, if you ask me. My conclusion: widgets are not dead, but they are on life support. Don't expect them to gain new features, see new cool widgets, or the likes.
I don't think is a matter of technology direction. Nokia business is mobile devices, Nokia acquired Qt, QML is Qt plan for mobile devices so we can't expect QML and the mobility projects to not be on the top of the priority list. If not for anything else, because that is the quickest moving target.
Qt before Nokia was all about cross platform (mainly desktop?) and the widgets are a big part of their success there. While I can see some instances where QML can be used for desktop applications (smaller flashy apps?) I believe using widgets is still the first approach for desktop applications ui.
Yes, perhaps it is understandable, and I also get that QML is the hot new thing and needs a lot of tender love & care (and hard work) to get it up to speed, so sure, a lot of attention is focussed there. However, as recently as on the last Dev Days, Sebastian Nyström (VP Qt Developer Frameworks) claimed* that investments in the desktop would not go down. It was still a primairy target for Qt. Well, to me, from the comments on that Jira issue, it seems widgets are degraded to maintenance mode. In my book, that is lowering investment levels.
*) see http://qt.nokia.com/developer/learning/online/talks/developerdays2010/keynotes/the-roadmap-next-generation-qt, first video, from minute 12:40 onwards. Development efforts for those platforms would remain stable. Since we have seen widget develoment, I expected that to continue. I guess I was wrong.
I get all itchy about this QML hype. I don't see yet how to create familiar looking and usable desktop apps with QML any time soon. So I hope they don't forget about the desktop and the QWidgets in there current mobile strategy. Unless I missed something nothing is wrong with creating mobile apps with QWidgets. The only question I have is, will QML in the future replace QWidgets?
I don't think even the most enthusiastic about QML can dream that QML will replace Widgets all together. Sure we will end up seeing QML applications on the desktop because they will be ported from the mobile world or because not being c++ based will attract more developers. Having the "standard widgets" project for QML completed will also contribute for more QML applications making to the desktop.
I believe the big appeal of Qt for developing desktop applications is/was that the applications, as much as possible, use/simulate the native look-and-feel of each platform. I think we are experiencing a paradigm shift from "standard look and feel" to "custom look and feel" on the mobile world but don't think this will apply to the desktop/productivity/business world any time soon, if ever.
Actually, I disagree with you on that last point.
On the one hand, there doesn't seem to be a huge "custom" look and feel on the mobile platform as you make it out to be. Yes, it is more smooth and animated, but if I look at the UI's of the apps on my iPhone, they look remarkably similar. And that is (still!) good! It makes it easy to find my way around in new apps, because often (not aways) they work in a similar way as the apps I already know. I think we'll see more standardization in UI interaction on mobile devices too. Maybe not by formal standards or HIGS, but at the very least by the copying of ideas between developers.
On the other hand, there are many platforms where a standard UI has never been much of an issue. Windows is one. Yes, it has some standards, and loads and loads of applications that don't integrate at all, introduce new UI components with every new version (from the same company as the OS, for instance...) or even do weird stuff with title bars and other non-standard tricks. Ever looked at an IM application or a media player and thought that it looked like it fitted the standards of the platform? I for one don't know many that do.
I think good QML components are sorely needed. It may be fun coding a button once or twice, but in the end, you want to have these things available. Same goes for more complicated interaction components like choosing an item from a list, selecting a time or a date, grouping options, etc. In this respect, QML is leagues behind the Qt widgets.
I don't actually have anything against custom look and feel on mobile or desktop applications. As I surely don't have anything against trying to follow UI design guidelines.
It is all about what will make for the best user experience on each individual application. If you write a tool for someone that uses Microsoft Office every day you probably should try to have the application follow all the latest Microsoft published (and unpublished) ui guidelines. If you are writing a game or a media player you should not compromise the experience by trying to have only standard ui elements, menu and status bars, ...
My point being: there is room for widgets and QML.
All true. My point was more: there is room for standard UI (-elements) even in the flashy, animated world of QML.
I too think that there is plenty of room for widgets still. I just hope that the Trolls keep that on their rader as well.
[quote author="Andre" date="1294412727"]I too think that there is plenty of room for widgets still. I just hope that the Trolls keep that on their rader as well.[/quote] Exactly my point.
For those interested: http://lists.qt.nokia.com/pipermail/qt-interest/2011-January/030637.html
This is a thread that is currently running on the qt-interest list on a bug with QGraphicsProxyWidget being closed as "out of scope". The proposed solution: redo your work using QML. Right...
[quote author="Andre" date="1295435254"]For those interested: http://lists.qt.nokia.com/pipermail/qt-interest/2011-January/030637.html
This is a thread that is currently running on the qt-interest list on a bug with QGraphicsProxyWidget being closed as "out of scope". The proposed solution: redo your work using QML. Right...[/quote]
I've read the thread and I find it quite alarming the way things seem to go. Since the aquisition of Qt by Nokia it is all about mobile development and each time I read articles like these my fear gets worse that traditional desktop development will be left out.
It took years for Qt to get stable for desktop development, I sincerly hope they don't expect people to switch for desktop development to QML, or any other for that matter, they have still a long way to go. Every release seems to add features and change the behavior of others. I want the code I write today to behave more or less as expected with the next major release, I don't see that happening with QML?
I'm too kinda disappointed with Qt focusing so much in QML and forgeting about QWidgets, which are the base of desktop applications..
QML could never replace QWidgets, in fact I think they be focusing on make QWidgets work in QML instead of making a brand new set of QML Widgets. >.<
I feel somewhat alarmed that such issues are closed as "out of scope" with the recommendation to solve it using QML.
We started to use Qt some years ago, since it is kinda stable and don't think our development team would be happy if the future of UI development is only with QML.
Maybe we should start to write our alternatives-plan if QML is really the way of Qt in near future...
That QML recommendation was given in the mailinglist thread, not in the closing comment on the bugreport. But still, I found it worrysome (and wrote so in a reply in that thread).
Yeah right. But what I meant is that it's alarming enough to close the issue because it is out of scope, because it's not considered important.
It makes me think about the behaviour of the maintenance team here at work... if we tell the customer that a bug "is not considered important enough to be fixed at the moment" this usually means something like "hey, we're going to release a new cool feature so you won't need this old and grumpy feature anymore" :)
[quote author="Andre" date="1295439915"]That QML recommendation was given in the mailinglist thread, not in the closing comment on the bugreport. But still, I found it worrysome (and wrote so in a reply in that thread).[/quote]
The recommendation is even in the bug-reports, I just got the following for http://bugreports.qt.nokia.com/browse/QTBUG-9826:
Widgets in general is no longer within our scope, especially not widgets with graphics effects, and we strongly recommend using Qt Quick as a replacement for that. Qt Quick 2.0 will have way better support for hw accelerated effects. Hence closing this issue as out-of-scope.[/quote]
While it pertains to QGraphicsEffects on QWidgets in a scroll area, Quick/QML might be more suited to that specifically, but shifting to QML for our entire app isn't really an option.
Yes, I am worried too...
Hey, this entire thread does not mention digia once. As I understand it, it is up to digia to maintain Qt widgets and fix related bugs.
Note that most of this thread is a bit older than that fact. So it is not surprising that Digia is not mentioned in it.
@Andre: I see.
@unclewerwerner: Any ideas on how Digia will handle bug reports from the community? qt.digia.com only wants my money. ;)
Bug reports from the community should go into the "public bug tracker":http://bugreports.qt.nokia.com
Nothing changes regarding maintainership etc. until we have the Open Governance processes in place.
There's a quite interesting article "here":http://zrusin.blogspot.com/2010/11/2d-musings.html about some of the advantages of moving to a QML / scenegraph based model for widgets in the future.
I think the qt-components project is going to be very important. Having a good collection of common widgets implemented in qml will go a long way to smoothing the development of consistent UIs for the next generation of devices and applications.
[quote author="Volker" date="1304346935"]Bug reports from the community should go into the "public bug tracker":http://bugreports.qt.nokia.com[/quote]
[quote author="Alexandra" date="1304346935"]Nothing changes regarding maintainership etc. until we have the Open Governance processes in place.[/quote]
Ok. In that case, I hope someone will go through the out-of-scope tickets and review/flag them as "desktop issues" instead, as it might be important stuff in there that's useful for whoever will decide to maintain that part in the future.
The out-of-scope labeling is a bit disheartening tho, but I suppose we all have to wait a bit and see how it pans out. (Very neat website this though. ;) )