Domain: trolltech.com
Stories and comments across the archive that link to trolltech.com.
Comments · 1,111
-
Re:Dual licensed - wtf?!
It's the usual marketing half-truth. If you take them to court about it for misleading marketing, they'll say what it really means is "GPL is good for all non-commercial users, commercial users should contact us to find out which license is appropriate for that usage. Try visiting any other dual licensed software like say Qt library and you'll see the same thing:
"Pricing & Licensing
Licensing
Qt is licensed for commercial use on a per developer basis. Each developer using Qt needs a license. If you are willing to share your source code you may also use the Open Source Edition. The licensing page explains Commercial, Open Source and other special-purpose (academic, research) licensing in more detail."
It's all convieniently ignoring that you don't have to distribute GPL code, you can build any internal proprietary commercial tool and use it however you want.
The main page is almost worse:
"Qt Open Source Edition Licensing
The Qt Open Source Edition is available to the Open Source community under Trolltech's Dual Licensing Model. The Open Source Edition is freely available for the development of Open Source software governed by the GNU General Public License (GPL). If you want to do proprietary, commercial development you need to purchase a Qt Commercial Edition."
That whole page is dedicated to commercial licensing, and the only little blurb about the open source version addresses "the Open Source community", doesn't link to the GPL, again reminds commercial users to get the commercial edition. The open source page it links to contain several half-truths like "By purchasing commercial licenses, you are no longer obliged to publish your source code." in a paragraph that doesn't mention distribution.
Right below it is another half-truth: "If you wish to use the Qt Open Source Edition, you must contribute all your source code to the open source community in accordance with the GPL when your application is distributed." since you only have to contribute it to whoever got the binary, not the OSS community.
In short, it's marketing. Good for business. Honestly, if you're not clued in enough to recognize the GPL and know what you're getting into, you might be better off with a "do as you want" license. I've certainly seen a few companies that think that "our guy built it, so we own it" completely ignoring pesky details like licenses for libraries. -
Re:Dual licensed - wtf?!
It's the usual marketing half-truth. If you take them to court about it for misleading marketing, they'll say what it really means is "GPL is good for all non-commercial users, commercial users should contact us to find out which license is appropriate for that usage. Try visiting any other dual licensed software like say Qt library and you'll see the same thing:
"Pricing & Licensing
Licensing
Qt is licensed for commercial use on a per developer basis. Each developer using Qt needs a license. If you are willing to share your source code you may also use the Open Source Edition. The licensing page explains Commercial, Open Source and other special-purpose (academic, research) licensing in more detail."
It's all convieniently ignoring that you don't have to distribute GPL code, you can build any internal proprietary commercial tool and use it however you want.
The main page is almost worse:
"Qt Open Source Edition Licensing
The Qt Open Source Edition is available to the Open Source community under Trolltech's Dual Licensing Model. The Open Source Edition is freely available for the development of Open Source software governed by the GNU General Public License (GPL). If you want to do proprietary, commercial development you need to purchase a Qt Commercial Edition."
That whole page is dedicated to commercial licensing, and the only little blurb about the open source version addresses "the Open Source community", doesn't link to the GPL, again reminds commercial users to get the commercial edition. The open source page it links to contain several half-truths like "By purchasing commercial licenses, you are no longer obliged to publish your source code." in a paragraph that doesn't mention distribution.
Right below it is another half-truth: "If you wish to use the Qt Open Source Edition, you must contribute all your source code to the open source community in accordance with the GPL when your application is distributed." since you only have to contribute it to whoever got the binary, not the OSS community.
In short, it's marketing. Good for business. Honestly, if you're not clued in enough to recognize the GPL and know what you're getting into, you might be better off with a "do as you want" license. I've certainly seen a few companies that think that "our guy built it, so we own it" completely ignoring pesky details like licenses for libraries. -
Re:Dual licensed - wtf?!Do they mean to say that if you want to sell it or do none-free changes then they will sell you a non-GPL license?
Yes. The commercial version isn't under the GPL.
This is how Trolltech does it. -
.NET is good technology and good FOR technology
There are three parts to
.NET: the VM/runtime, the APIs, and the compilers, so I'll address them separately.The VM and runtime are just good technology. They are also standardized (through ECMA), Microsoft's implementation is reasonably efficient, and the design is at least as good as the competition (i.e. the JVM, and I'll vent on my pet peeve here when I say that making properties a first-class, reflectable part of an object/class is much easier to deal with than the JavaBeans method naming convention).
The APIs are, like any other system platform, huge. They are reasonably well-designed, however, and Windows.Forms is far nicer to program to than Swing or AWT (I haven't played with SWT or Qt's Jambi). Simply by virtue of being designed with the lessons learned from Java in mind, they avoid some of the pitfalls and backward compatibility issues that Java faces.
The compilers are decent (though I'm told that the Fortran compiler produces terribly inefficient code), but the important part is that there are compilers for a broad range of languages. C++, C# and VB.NET (which is really just a verbose dialect of C# with some additional gotchas) are there out of the box, but there is also an ML compiler (F#), a Ruby compiler (IronRuby, to be released with SilverLight), ECMAScript (available with SilverLight, but I think it might be right up there with C++, C#, and VB.NET), a Python compiler (IronPython), a COBOL compiler (available commercially if this is actually something you need, ugh) and more that don't come to mind right off.
That's the good technology part. The good for technology part is competition. Flash is good, but Flash being developed under competitive pressure from SilverLight is better. Java is good, but Java being developed under competitive pressure from
.NET is better. Even if you have no interest in .NET's technology for itself, be glad that both Sun and Adobe have a vested interest in making their respective technologies better and more pleasant to use.That said, I make my money programming Ruby on Rails on a Mac. Despite my previous experience with C, C++, Obj-C, awk, sed, Java, JavaScript, C#, VB.NET, ASP.NET, etc. (and only the
.NET stuff on Windows), I'm just a spectator here unless and until I'm looking for a new job. -
Re:So don't use Swing?
if you or your users don't like Swing there are numerous alternatives.
Indeed. Here's a few:- SWT
- Qt/Jambi
- Java-GNOME
- wx4j (wxWidgets)
Those are the ones off the top of my head. There are quite a few more out there in the wild. - SWT
-
Re:Things to learn from Windows and OSX.You're right. I didn't think Qt was still being distributed under the QPL, but I found this:
# If you wish to use the Qt Open Source Edition, you must contribute all your source code to the open source community in accordance with the GPL when your application is distributed.
# For historical reasons, the Qt/X11 version is also available under the QPL license. We do not recommend the use of the QPL, especially if you are planning for your Open Source software to be distributed on Mac OS X or Windows. -
Re:Things to learn from Windows and OSX.
Ah, thanks. I didn't realize KDE uses the LGPL license for its libraries -- do they make use of Qt's QPL, then? I was under the assumption that linking against a GPL'ed library would require your application (or extending library) to be GPL'ed as well.
Qt is dual-licensed. Anything you link to Qt has to be GPL, unless you buy a commercial license from Trolltech.
KDE links to Qt, and KDE is LGPL. KDE's LGPL is compatible with the Qt's GPL. Therefore, you can develop (L)GPL software and link it against KDE's LGPL and Qt's GPL. You can also develp commercial software and link it against KDE's LGPL and Qt's commercial license.
-
Re:Things to learn from Windows and OSX.because there is no standard GUI layer. Windows provides all that.
No, it does not. Well only sort-of.. The "standard GUI layer" of Windows is limited to the plain widgets we all know from Windows 95. The ones Notepad and WordPad still use. Ugly menu's and big bevel toolbar buttons. If you look closer you'll see Notepad, Windows Explorer, Visual Studio, Office all use different menu's and toolbar handles. They're all custom widgets, not standard.
Most advanced widgets for Windows are part of a commercial widget toolkit you've chosen. This can be MFC, ComCtl, VLC (Borland), Windows Forms (.Net), WPF (.Net3), Qt, and I'm missing others (e.g. remember those big sized OK-buttons a big green check icon inside).
All those different frameworks do have something in common. Windows provides central settings for fonts and color schemes. This makes them all look the same. That's something Linux should really improve.
his license and that license (really meaning, these liabilities and those liabilities.)You have two good options for Linux:
- GTK+. Free for use in commercial projects (LGPL). It's the base of GNOME.
- Qt. IMHO a enterprise class toolkit (see customer list). Requires a license for commercial work, but I don't see how that's different from a license for Visual Studio. And you'll get commercial support in return too. Qt is the base of KDE.
-
Re:Short version:
BSD: Anyone can use your code, any way they want, as long as they mention your name.
GPL: Anyone can use your code, as long as they mention your name and allow others to use the code as you have let them use it.
LGPL: Same as GPL, but with some exceptions allowing others not to be bound to your licence if they don't actually touch your code in their project, but just use it.
Additional thoughts (assuming that you are interested in profit from your work):
Unless forced (i.e., you used someone else's GPL code), free software licenses are only useful if you're prepared to release your work publicly. If you own 100% of the code and it contains no algorithms or data that you can't / don't want to reveal, there are good reasons to use a free license even if you don't buy into the Free software philosophy (and the definition of that is debatable, controversial, and not intuitive.)
GPL If you want to profit from your work, use the GPL. This gains you a user base as fast as possible, respect from the FOSS community, and forces anyone who uses your code to also release their own, or pay you for a different license. GPL provides fair protection from piracy (everyone knows what it is, and there is substantial recourse against violators) but allows you "sell" your work on terms acceptable to commercial developers. You may even be able to "reverse license" GPL'ed improvements from customers, allowing you distribute and sell improved versions you didn't have to write in exchange for a reduced license fee.
A prime example is http://trolltech.com/. Their Qt product contains little of a "trade secret" nature, but is far too big and complex to recreate for the price of a license. Trolltech has contributed greatly to Linux (in particular) by providing a high end UI system for free. This costs them nothing (no sales were lost), and has resulted in thousands of coders becoming both experienced with and enthusiastic about Qt, some of whom may need the commercial version some day.
LGPL forces any changes to your work to be open, but work that uses your work can still be closed, if the developer jumps through the right legal hoops to draw a line between your code and theirs. This tends to make commercial users nervous, while not encouraging them to buy a regular license (even though it's probably cheaper than their legal cost to feel safe.) Given that your source code is going to be released publicly in either case, LGPL has no real advantage over the GPL.
BSD is the "real" free license. It's more honest than the GPL in that you don't proclaim Freedom while forcing your license terms on everyone else, but it's pretty unlikely that you'll get paid other than from contract work for improvements. -
Re:Oh it's driving demand all right
On Windows XP, everything contained within an application window looked better to me. See Qt 4.0 "windowsxp" widgets. I didn't like the titlebar and taskbar however.
-
Re:KDE's Achilles' heelFirst, you are right, I was not aware of that clause in the QPL. I hope you can forgive me, though, because the reason I only skimmed through the QPL previously is that Trolltech themselves recommend against using it:
For historical reasons, the Qt/X11 version is also available under the QPL license. We do not recommend the use of the QPL, especially if you are planning for your Open Source software to be distributed on Mac OS X or Windows.
Trolltech clearly intend what I said before - that you must be GPL, or pay them. For historic reasons, there is a sort of 'loophole' with Qt/X11, in the form of the QPL. But using it will prevent you from using some of the more impressive advantages of Qt, which are its cross-platform capabilities. Thus, this is lock-in: run only on Linux, or pay Trolltech (or be GPL).
Therefore, despite agreeing that what you said about the QPL is correct, essentially the matter is as I presented it earlier: Qt's licensing is far more restrictive than e.g. GTK+'s, and in ways that can cause actual problems for developers. Qt's licensing is holding it back, and that's a shame, because it is really very nice. -
Re:KDE/Qt might be great, but I'm not interested
But Qt itself costs around $1780 to $6600 on a per developer basis depending on console/GUI one/two/three platform development. If you work for a company with any clout, you can probably cut that cost in half for either platform. Although I'm not doing anything now, the first thing I would use for a lean startup cross platform development is ACE with wxWidgets on Visual Studio Express or Eclipse with CDT.
As a startup (even without any clout) you can get a 65% discount on your Qt license cost. This means you only need to pay between 556.60 and 1113.00 for a "Desktop Light Edition", which has more features than the other toolkits you mention. The Qt license is valid for your whole lifetime and includes one year of updates and support.
-
Re:KDE's Achilles' heel
I stick with GNOME based pretty much solely on the licensing. Qt is a fairly nice API (if buggy at times) but forcing me into GPL isn't good (I prefer LGPL and BSD-style).
Well in that case, you have no problem. Qt for X11 is available under the QPL, which permits applications to use a range of free software licenses, including the LGPL and BSD-style.
Guess you'll be switching now then?
-
Download and play with QtConcurrent today
A project that you can download and play with today is Trolltech's QtConcurrent. Given a task it will automatically manage creating threads and distributing the task among your cores.
From the project page:
The classes and functions available in the Qt Concurrent package allows you to write multi-threaded applications without having to use the basic threading synchronization primitives such as mutexes and wait conditions. This makes it easier to reason about and test parallel programs to make sure that they are correct.
The Qt Concurrent components manage the threads they use automatically. Each application has a global thread counter, which limits the maximum number threads used at the same time. The maximum is scaled according to the number of CPU cores on the system at runtime. This means that programs written with Qt Concurrent today will continue to scale when deployed on many-core systems in the future.
Very cool. -
Re:CSS on desktop applications
I certainly wouldn't mind being able to use CSS to style every applications look.
Actually, for applications using Qt4 you can do just that ;-)
http://doc.trolltech.com/4.2/stylesheet.html -
Re:Prior Art?
Or skip lists, which are rather nifty, though I've never had a real-world application for them beyond job-interview brainteasers.
Here's one real world example, although you don't need to know them to use them: Qt's QMap collection is implemented using skip lists. http://doc.trolltech.com/qq/qq19-containers.html -
Huge potential, bad licensing
For more information on licensing, which is a real PITA for open-source developers, see here: Greenphone SDK.
On the bright side, with projects like OpenMoko and OLPC I think the world will start to realize the power and potential of these little Internet-enabled devices when combined with open-source software. -
"New" my foot.
-
Re:Must be missing something...
Nope, sorry. Read that again...
http://www.trolltech.com/developer/downloads/qt/wi ndowsIf you are writing commercial/proprietary software, or if you plan to commercialize the software you are writing with Qt, you must use a commercial version of Qt.
'commercialize' Means "To apply methods of business to for profit." This means that if you intend to make money from the project, and you use Qt, you MUST license the commercial 'version' of Qt, even if you open source and GPL your code.
-
similar projects
The LiMo Foundation
OpenMoko
The GreenPhone -
Must be missing something...
... Didn't we already have a fully open source development stack for cell phones in QPE? I might be reading it wrong, but the summary makes it sound like they think it's something new?
-
How does this differ from Greenphone?
Greenphone from Trolltech already has a development device available, although it is a bit pricey for common usage ($695 USD). Does anyone have any information about the differences in the project?
-
Re:I'm confused
It not only can, it does.
How do you figure that? Are you aware of such companies as Trolltech (who owns the copyright to the QT libraries and licenses these copyrights differently according to the situation) or MySQL AB who does the same with many (most/all?) of their products? There are no restrictions placed by the GPL on these companies and how they see fit to distribute their software. The GPL does, however, place restrictions on whoever decides to redistribute this software under the terms of the GPL -
Re:So trueHeh, you're obviously new to Trolltech licensing. They're the only company in the world that puts restrictions on what you can do before they'll license you their software. From the FAQ: Can we use the Open Source Edition while developing our non-opensource application and then purchase commercial licenses when we start to sell it?
No. Our commercial license agreements only apply to software that was developed with Qt under the commercial license agreement. They do not apply to code that was developed with the Qt Open Source Edition prior to the agreement. Any software developed with Qt without a commercial license agreement must be released as Open Source software.
- source. They've dug themselves a nice little hole and all they've got to fill it is absurdity. -
Re:So true
Sorry, but that is bull.
While they do license per developer, you can change the licensed developer.
http://www.trolltech.com/products/qt/licenses/lice nsing/qtlicensing -
Stop! Don't use Trolltech's non-free telephonyThe funny thing about your comment is that you give the Greenphone's Qtopia as an example of free software in the context of this phone thread.
Well indeed Qtopia is free, but it's not free phone software, because the GPL edition of Greenphone specifically excludes the telephony components. So, your beloved Qtopia is emasculated by Trolltech licensing into being just a PDA framework, if you want to use free components alone. You have to abandon GPL purity and use their non-GPL telephony interface code to phone out on the device.A: Qtopia Open Source Edition contains everything that is in the commercial source version, except Safe eXecution Environment (SXE) - the security benefits of a "sandbox" on the device with the benefits of a native application approach - digital rights management (DRM) and telephony components.
In contrast, OpenMoko on the FIC Neo1973 is 100% an open phone platform, with the telephony entirely under the control of your own or community code, not FIC's --- the phone is managed and programmed through AT/modem-type commands generated by any arbitrary programs you chose to run, or indeed write your own.
And of course you can run Qtopia on this phone as well ... and then your GPL code can at last benefit from open telephony.
Since you are the one stressing about GPL purity, OpenMoko should be a big deal for you, whereas Greenphone and Trolltech should be on your blacklist. -
Re:First open source mobile? I think not.
if you read the terms and conditions on Trolltech's website you'll see that it is very clear that you can't start a GPL project and then later buy the SDK. It took me about 2 minutes to find the URL, so I suggest you never really looked!
http://www.trolltech.com/company/about/businessmod el
I quote... Please note that it is necessary to choose either the Open Source or Commercial license at the outset of development. Trolltech's commercial license terms do not allow you to start developing proprietary software using the Open Source edition. -
Stop! Don't use LGPL software!
LGPL software is not about free and open source software, its really about proprietary software! Companies want you to think that using LGPL software like GTK+ makes them open source, but it isn't true. They don't give back to the community! The Lessor GPL allows companies to build proprietary software and to rip you off! Which do you want more of? Free and open source software? or commercial, proprietary software? If you are really for free and open source software, you would use only GPL software like Qtopia! LGPL is not about free and open source software!
-
Re:First open source mobile? I think not.
Perhaps you would be able to understand if you read the Greenphone pricing plan. You see, Trolltech only charges for the commercial release of the SDK. The community SDK is free and released under the GPL.
-
Re:First open source mobile? I think not.
It better be fantastic for $890.
http://www.trolltech.com/products/qtopia/greenphon e/greenphone_pricing -
First open source mobile? I think not.
The website states the following:
2006.11.7 OpenMoko Announces the World's First Integrated Open Source Mobile Communications Platform at Open Source in Mobile Conference in Amsterdam.
First one? I beg to differ. Should I point out Trolltech's Qtopia Greenphone? I believe it precedes OpenMoko by a considerable notch.
-
Open cell phone platform
Perhaps it's time for an "OpenPhone Project" that implements wacky OSS coolness and innovation on top of a reference smartphone design and that can ultimately make its way into the hands of interested manufacturers? I'd be interested in reading about that on the front page of Slashdot...
Well, there's the Qtopia Greenphone. From what I've read so far, it doesn't sound like it's quite ready for prime time, but sounds like it's on the right path. -
Re:Right...
I'm holding out for Trolltech's Greenphone. It runs Linux, and the point is openness... you can recompile the kernel if you want! Paired with KDE 4, I think it's going to blow the iPhone out of the water... at least for people that want a useful, hackable mini-computer and not a $3000 status symbol.
Yeah, that's what I was thinking until I read the Greenphone FAQ:
Q. Is Greenphone a commercial mobile phone?
A. Greenphone is not intended as an end-user's primary cell phone. Greenphone offers a development environment that is equivalent to a GSM/GPRS mobile phone with the capability to re-flash the applications memory. Using the Greenphone SDK, developers can create and modify applications then use the Greenphone to test and demonstrate their software's performance in a real-world hardware constrained environment. The device complies with GCF requirements, and inserting a SIM card obtained from a GSM network operator should safely enable basic phone functionality.I would love to have one of these... if I could use it as my main cell phone. Until then, I'll just hack around on my GP2X. However, as far as buying a Greenphone goes, put your money where your mouth is.
-
Re:Secret or not...
A full fledged PC OS on a PDA, the phone part is nice too...
It already exists. And is open: the greenphone.
-
Re:Scare TacticsCan you explain to me why exactly it's an advantage for commercial software? Since you brought up Qt, I'll continue to refer to it in this example. For reference, Pricing for Qt is here. There are a number of links on that page that all take you to the page describing what the various "editions" of Qt licenses get you.
Assume that you want to use Qt to actually develop GUI applications. That means you need a license for either the Desktop or Desktop Light editions. Further assuming that you want to develop apps that use the network in some way, or interface to a database, or work with XML. Now you're stuck with the full Desktop edition.
Continuing with our list of assumptions, let's assume you want to use Qt because you want to be able to recompile my application to target Windows, MacOS-X, and Linux. That means you need the three-platform Desktop license, which will cost you US$6,600.00 for the first year, and US$2,050.00 for every year thereafter that you want to distribute commercial apps built with Qt.
Now, if you work for a larger company, a $6,600 licensing fee for a library might be fairly easy to justify. On the other hand, if you work for a small company, or are just an individual looking to make a few bucks off of a tool you wrote, that $6,600 pricetag is likely going to push you into looking for "some other way" to get a cross-platform GUI.
I'd venture to argue that there are a lot more people wanting to develop software to sell who think that $6,600 is too much money to justify for an initial investment than there are who would find that amount easy to shrug off. Those people would be more likely to keep looking until they found something cheaper or under a non-viral license.
Now, I'm not saying that I think $6,600 is an unreasonable price to ask for the full Qt. I'm saying that a lot of developers are going to look at the licenses for Qt, then look at the pricing for commercial licenses, and then keep looking.
BSD-like licenses are ideal for commercial software because they place no limits on what you do with it. The LGPL is a fairly close second, as long as you can keep the LGPL code in a shared library, rather than statically linked.
And if the main authors of BSD or LGPL -licensed libraries have a donation button, so much the better. -
Re:phone
The second it is a cellphone it will be a closed platform
so.. this thing by your definition isn't cellphone then? -
Re:Trolltech?
Trolltech is a company that is mostly known for making the Qt widget set, which KDE is based off of (along with thousands of other programs). http://www.trolltech.com/ for more information.
No, I'm not affiliated, but my gods I can't believe there's someone that reads /. and doesn't know who Trolltech is. And you call yourself a geek... -
Re:Why does this idiot myth continue?
Now if they wanted to release an API that could be used to develope software that could then run on any OS that supports the API, that would be another story. Then those that like the stability that comes with a OS hardware package could continue with Mac, and someone else could create an OS for generic hardware that ran the same exact applications
You're describing what Qt has done for years. Though I suppose ~$3300 is a bit much to pay for your typical Mac shareware developer. -
That's the beauty of Qt.
These applications appear to be built upon Qt. For those who are not familiar with it, Qt is the premiere C++ GUI toolkit on the market. Not only is it portable, but it's damn fast and resource thrifty. KDE uses it as its underlying toolkit, and it's one of the main reasons that people often find KDE to be more responsive, while also using less memory, than GNOME.
While it is completely unlikely at this point, were OpenOffice.org to be rebuilt around Qt, it would be far faster and less bloated than it is today. The OpenOffice.org rendering and GUI toolkit framework is one of its weak points, and Qt would go a long way towards improving the situation. -
Re:Not quite free....
Actually... no.
From the Trolltech FAQ: http://www.trolltech.com/developer/knowledgebase/1 82/
Entry number: 182 - Can we use the Open Source Edition while developing our non-opensource application and then purchase commercial licenses when we start to sell it?
Answer: No. Our commercial license agreements only apply to software that was developed with Qt under the commercial license agreement. They do not apply to code that was developed with the Qt Open Source Edition prior to the agreement. Any software developed with Qt without a commercial license agreement must be released as Open Source software. -
We do have open source handsets
I won a QT greenphone http://www.trolltech.com/products/qtopia/greenpho
n e/ at QT DevDays 2006.
It's completly open from the Linux kernel, to Qtopia as a operating system to the user apps. You could even hack the modem device driver if you wanted too.
Unfortunatly it's set up as a developer device and not available to the public, it's GSM (not good coverage where i'm at) and still a bit buggy.
On the upside it's fun to hack and you can be sure the FBI has no backdoors :) -
TrollTech's Jambi does this quite nicelyIt can be used opensource (GPL) as well as commercially. Here is the link to the tech preview.
I have to say, I'm pretty impressed so far.
-
Re:KDE: now with more FUD
KDE is a non-starter for commercial desktop environments because of the cost of Qt for commercial users: that's why Sun, IBM, Ubuntu, RedHat, Eclipse, and SuSE are all basing their major products on Gtk+, not Qt.
4/6 brands (Ubuntu, Red Hat, Eclipse, Suse) you mention would not be burdened with the financial cost of Qt if they chose to develop with it. In fact, with the exception of Sun and (maybe) Eclipse, all of those brands use Qt to one degree or another. You may also find that many people use Qt for closed source development anyways, despite the financial cost associated with it.
-
The basics.
Alright, I'm a little busy right now so I won't go into as much detail as I'd like, but here are the basics as far as I understand them.
1) Design patterns still apply. More than ever, actually. If you've not read the GoF, it features a pretty advanced example centered on the design of a rich text editor. You will probably want to dive deeply into the workings of the Model-View-Controller pattern and the related design constructs. The MVC pattern is not the be all and end all of GUI design, and there are many cases where the articulation between View and Controller
2) You may not now it yet, but you want loose coupling. Loose coupling means that, essentially, when a widget's state change, it will report on that change, and some interested party will be notified about it, and neither will have to know anything about the other. Many toolkit nowadays come with good signal and slot mechanisms to implement loose coupling. Understand them, and use them. If you find the sender of a signal and the receiving slot need to know about each other, you may want to go back to the drawing board as suggested in point #1 above; it is usually not necessary.
Conceiving GUIs is not all about the underlying software architecture, though; a good chunk of the work of making great interfaces is in the designing of the GUIs themselves (which is why you want loose coupling -- you WILL have to be flexible against changes as you experiment). I will let others fill you in about that. Quickly: read usability guidelines and get a feel for why they suggest what they suggest. Align your widgets! NetBeans is good for this, IIRC. Use GUI designer tools, experiment more.
That's all I can think of off the top of my head, but there's already a lot for you to chew in there. :) Hopefully other people will have more details to give you.
All in all, it boils down to the usual rules of engineering: the second rule is to know what works, and the first rule is to know why it works. -
Re:Better alternative
-
Re:Better alternative
To use it, you're supposed to import and subclass it.
For Qt 3 that is correct (apart from the import part that is), for Qt 4 that (while still possible) is not the normal way of doing things. Now it generatees a struct you put as member into your class and call a setup function.You can't use the
.ui file directly at runtime.
That is not true, both Qt3 and Qt4 have mechanisms to load ui files at runtime.
Qt4: QUiLoader and Qt3: QWidgetFactory
But then again looking at the style of your writing....[...]hardcore Qt advocates[...]Even the Qt fans here think it's dumb[...]Qt fanatics[...]
...I guess it is rather pointless starting a discussion with you as you seem not to be interested in a fruitfull discussion but rather than talk down the Qt toolkit. -
Re:Better alternative
To use it, you're supposed to import and subclass it.
For Qt 3 that is correct (apart from the import part that is), for Qt 4 that (while still possible) is not the normal way of doing things. Now it generatees a struct you put as member into your class and call a setup function.You can't use the
.ui file directly at runtime.
That is not true, both Qt3 and Qt4 have mechanisms to load ui files at runtime.
Qt4: QUiLoader and Qt3: QWidgetFactory
But then again looking at the style of your writing....[...]hardcore Qt advocates[...]Even the Qt fans here think it's dumb[...]Qt fanatics[...]
...I guess it is rather pointless starting a discussion with you as you seem not to be interested in a fruitfull discussion but rather than talk down the Qt toolkit. -
Re:Better alternative
"You must purchase a Qt Commercial License from Trolltech or from any of its authorized resellers before you start developing. The Commercial license does not allow the incorporation of code developed with the Open Source Edition of Qt into a proprietary product."
-
Re:Better alternativeQT4 is opensource under the GPL. The commercial license is a bit rediculous, though.
How is the commercial license ridiculous? I just renewed my commercial license for a single user, two platform copy, for only $830, and find it a bargain when one considers how quick AND good the support is.
http://www.trolltech.com/products/qt/licenses/pric ing
QT's "signal & slots" technology is much more powerful and easier to implement than traditional callback functions.
I tried wxWindows when it was part of Boa-Constructor. I found Boa very enjoyable to use, but development on it seemed too slow and combine that with the fact that wxWindows requires gtk+ and other libs with specific version numbers for the version of wxWindows that I was using. Keeping them synchronized became a pain. I found DevC++ and MinGW equally pains.
Compare that with QT, which supplies the UI designer, the API doc (Assistant), the Meta-Object-Compiler (moc), the User-Interface-Compiler (uic), qmake and other utilities, all of them at the same version and installed from the same tar or exe. The tools are a joy to use.
On Windows I use MS VC2003 as my dev tool and on Linux I use Kate, believe it or not. It's easier to program in Linux than Windows because Kate is MUCH easier to use then MS VC2003, and compiling the SAME app under Linux is 10 times faster than under Windows using nmake. I use compiler defines to automatically select code specific to either Oracle or PostgreSQL, or for Win_32 or Linux, so I don't have to make code changes to compile the same app under either platform or backend.
I never wrote a C++ app before I used QT4 to write one of our major in-house apps. Learning both at the same time was made considerably easier because of QT4. As a former VFP6 coder I found that once I became familiar with the QT API, Signals & Slots, and the other QT tools, development in QT4 is comparable with VFP6. Very easy, quick and enjoyable. Compate to the VFP6 apps I replace, the QT versions were several times faster. It didn't hurt that I was using Oracle as the back end, either. -
Re:Better alternativeI said it's redicious becuase of this:
License Pricing (per developer)
One Platform
Console Edition: $1780
Desktop Light Edition: $1990
Desktop Edition: $3300
Two Platforms
Console Edition: $2670
Desktop Light Edition: $2990
Desktop Edition: $4950
Three Platforms
Console Edition: $3560
Desktop Light Edition: $3980
Desktop Edition: $6600
That's much higher than even Visual Studio. wxWidgets is $0 and is under the LGPL. DialogBlocks (gui builder for wxWidgets) is $70/developer and can be used on as many computers as the developer uses.