|  | Home · Overviews · Examples |

# Qt Jambi Tutorial 1 - Hello World!

This first program is a simple "Hello world" example. It contains only the bare minimum you need to get a Qt Jambi application up and running. The picture below is a screenshot of this program.

Here's the complete source code for the application:

        public class HelloWorld
        {
            public static void main(String args[])
            {
                QApplication.initialize(args);

                QPushButton hello = new QPushButton("Hello World!");
                hello.resize(120, 40);
                hello.setWindowTitle("Hello World");
                hello.show();

                QApplication.exec();
            }
        }

## Line by Line Walkthrough

        package com.trolltech.examples.tutorial;

        import com.trolltech.qt.gui.*;

To use Qt Jambi classes, you need to import at least the`gui` package, which includes the `QApplication` class. `QApplication` manages various application-wide resources and is needed to run a Qt Jambi application. The `gui` package contain GUI related classes, such as widgets, which is a user interface object that can process user input and draw graphics.

            public static void main(String args[])
            {

The `main()` function is the entry point to the program. Almost always when using Qt Jambi, `main()` only needs to perform some kind of initialization before passing the control to the Qt Jambi library, which then tells the program about the user's actions.

The `args` parameter is the command-line arguments. This is a standard Java feature.

                QApplication.initialize(args);

Each Qt Jambi application contains a unique `QApplication` instance, which is a private `QApplication` class member. To create the instance, you call the static initialize() method with args; note that args might be changed as Qt Jambi removes command-line arguments it recognizes. See `QApplication`.argv() documentation for details.

The `QApplication` object must be created before any GUI-related features of Qt Jambi are used.

                QPushButton hello = new QPushButton("Hello World!");

Here, after the `QApplication`, comes the first GUI-related code: A push button is created.

`QPushButton` is a GUI push button that the user can press and release. The programmer can change both the overall look and feel and many minor properties of it (such as color), as well as the widget's content. A `QPushButton` can show either a text or a `QIcon`.

The button is set up to display the text "Hello world!". Because we don't specify a parent window (as second argument to the `QPushButton` constructor), the button will be a window of its own, with its own window frame and title bar.

                hello.resize(120, 40);

The button is set up to be 120 pixels wide and 40 pixels high (excluding the window frame, which is provided by the windowing system). We could call `QWidget`.move() to assign a specific screen position to the widget, but instead we let the windowing system choose a position.

                hello.setWindowTitle("Hello World");

The title of the window in which the button is shown is set with `QWidget`.setWindowTitle().

                hello.show();

A widget is never visible when you create it. You must call `QWidget`.show() to make it visible.

                QApplication.exec();
            }

This is where `main()` passes control to Qt Jambi. `QCoreApplication`.exec() will return when the application exits. (`QCoreApplication` is `QApplication`'s base class. It implements `QApplication`'s core, non-GUI functionality and can be used when developing non-GUI applications.)

In `QCoreApplication`.exec(), Qt Jambi receives and processes user and system events and passes these on to the appropriate widgets.

You should now try to compile and run this program.

The tutorial examples are located in Qt Jambi's `examples/tutorial` directory. They are automatically built when you build Qt Jambi.

If you have typed in the source code manually, you compile and run it as a regular Java program (provided that you have set up Qt Jambi correctly, see the install instructions).

        javac com/trolltech/examples/tutorial/HelloWorld.java
        java com.trolltech.examples.tutorial.HelloWorld.java

## Running the Application

When you run the application, you will see a small window filled with a single button, and on it you can read the famous words: "Hello world!"

## Exercises

Try to resize the window. Click the button. If you're running X11, try running the program with the `-geometry` option (for example, `-geometry 100x200+10+20`).