x
Loading
 Loading
Desktop
The Best of Both Worlds: The Role of Mono in Multi-Platform Application Development
User Interface
Programming with Qt, Part 2
In the previous installment of this series, we implemented two very simple example programs, which nevertheless demonstrated quite a few of the core concepts of Qt programming. This month, let's will take a step back and look at some of the fundamentals of programming with Qt.
Qt is a set of C++ libraries and development tools commercially developed and distributed by Trolltech of Norway. Qt is available for different platforms (Win32, most flavors of Unix/Linux, as well as Mac OS X), and in several editions, including the Free Edition that's free of charge for the development of free and open source software. Trolltech's Free Edition has all of the same features of its Enterprise Edition -- at no cost!
These days, it's increasingly rare to begin a new Java project without looking at one or more pre-existing frameworks, collections of class libraries that provide the underlying structure for an application and enforce good programming practices. There are frameworks for enterprise computing (EJB), Web applications (Struts), business process modeling (Naked Objects), graphical user interfaces (JFace), and many other areas of development. A well-designed framework provides a sturdy structure upon which to build applications.
In a little more than a year, the Eclipse project initiated by IBM has become one of the most dynamic and widely-supported open source efforts of any kind, especially within the Java community.
Even if a system can't provide raster graphics, there's no reason it can't offer the convenience of windowed interfaces. Perhaps you've never heard of it, or perhaps you've just forgotten about it -- in any case, the ncurses library lets you build windowed applications for character-based displays.
Last month, we began investigating how compilers actually work. Our look "under the hood" started with the front end of the compiler -- the phases that parse and tokenize the source file, verify syntax and semantics (the rules of the programming language), and translate the source code into an intermediate representation. Figure One shows a overview of the entire process. This month, we pick up the discussion at step five, "Intermediate Code Optimization".
Qt is one of the most popular GUI toolkits in the open source world, and it serves as the foundation of the KDE project. Getting started with it is a snap.
While developing the GIMP (GNU Image Manipulation Program) a few years back, Spencer Kimball and Peter Mattis decided that it might be fun to write a user interface toolkit to go along with it. And so they created GTK+ (the GIMP Toolkit) -- a library of "widgets" that makes it easier for developers to build GUI-based application. A widget is one of the various components of a graphical application; a toolbar, for example. The widgets provide programmers with pre-built dialog boxes, windows, menu bars and other GUI components. Having a pre-built foundation for these user interface components greatly speeds development of GUI applications and also enables applications built with those widgets to share a common "look and feel".
Top Stories
Have a Windows application, but want to port it to Linux? Mono lets you keep your source code and run on Linux, too. Mono founder Miguel de Icaza explains.
Implement a nifty progress bar with a handful of modules and a smattering of code.

Julio M. Merino Vidal has some useful tips for open source developers to make life easier on the folks who package software. Vidal works for the NetBSD Packages Collection but his suggestions are also helpful for other BSD and Linux distributions.

cmake is a portable build system: Create a single source definition and build your code on one or many platforms. Learn how to use cmake and see how KDE uses the tool for the project’s next generation build system.
If you are going to use git effectively, it’s imperative that you understand the Index. Tour de force, watch it in action.
Unified Parallel C provides shortcuts and conveniences for parallel codes. Here’s another example.
This month, we are starting a series on network programming. This area of programming is enormous, not only because of the sheer amount of information that is needed to successfully develop network applications, but also because of the number of applications currently being developed with networking in mind. With network speeds increasing, more and more applications have a "network" version of some sort. For example, Quicken can automatically update your account information from some banks, computer games can be played with other people on the Internet, and so on.
Learn how to use ccache and distcc to speed up compilation.
OpenOffice.org 2.0 is still a few months off, but the beta is drawing criticism due to functionality in OO.org requiring a Java Runtime Environment (JRE). Bruce Byfield looks at the arguments for and against including components written in Java, including licensing concerns and the lack of an official version of Java for Linux on PPC or FreeBSD.
If you've worked with a group of programmers, you've probably used version control software like CVS. However, version control is also useful for non-programmers -- for instance, for a group of technical writers producing product documentation.
If you're running RedHat or a Linux distribution based on RedHat, chances are you've had occassion to use RPMs. RPMs and Red Hat's accompanying package management system (and other systems like it) greatly simplify the task of maintaining the software on a system. With RPMs, installs, upgrades, and even downgrades are quick and easy.
Free Email Newsletters
Linux Mag Weekly
Blade & Virtualization
Making the Most of Multicore
HPC Weekly
Linux Magazine Case Study Update
Linux Magazine Webinar Update
Linux Magazine White Paper Update
Linux Magazine PR Daily
Email Address:

Sponsored Links