原文: http://zetcode.com/gui/qtjambi/introduction/

在 QtJambi 编程教程的这一部分中,我们将介绍 QtJambi 工具包并创建我们的第一个 QtJambi 程序。

本教程的目的是帮助您开始使用 QtJambi 工具包。 可以在此处下载本教程中使用的图像。 我使用了 Gnome 项目的探戈图标包中的一些图标。

关于

QtJambi是用于创建图形用户界面的跨平台工具包。 它基于两种非常成功的技术。 Qt 库和 Java 编程语言。 Qt 是功能强大的跨平台应用开发框架。 它的母语是 C++ 。 Java 是非常成功的编程语言。 QtJambi 是 Qt 库的 Java 绑定。 与 Python,C# 和 Ruby 绑定不同,诺基亚公司正式支持 Java 绑定。

创建工具提示

第一个示例将显示一个工具提示。 工具提示是一个小的矩形窗口,它提供有关对象的简短信息。 它通常是一个 GUI 组件。 它是应用帮助系统的一部分。

  1. package com.zetcode;
  2. import com.trolltech.qt.gui.QApplication;
  3. import com.trolltech.qt.gui.QWidget;
  4. /**
  5. * ZetCode QtJambi tutorial
  6. *
  7. * This program displays a
  8. * tooltip
  9. *
  10. * @author jan bodnar
  11. * website zetcode.com
  12. * last modified March 2009
  13. */
  14. public class JambiApp extends QWidget {
  15. public JambiApp() {
  16. setWindowTitle("Tooltip");
  17. setToolTip("This is QWidget");
  18. resize(250, 150);
  19. move(300, 300);
  20. show();
  21. }
  22. public static void main(String args[])
  23. {
  24. QApplication.initialize(args);
  25. new JambiApp();
  26. QApplication.exec();
  27. }
  28. }

该示例创建一个窗口。 如果将鼠标指针悬停在窗口区域上方,则会弹出一个工具提示。

  1. import com.trolltech.qt.gui.QApplication;
  2. import com.trolltech.qt.gui.QWidget;

这些是我们在代码示例中使用的组件的必要导入。

  1. public class JambiApp extends QWidget {

该示例继承自QWidgetQWidget类是所有用户界面对象的基类。 小部件是用户界面的原子。 它从窗口系统接收鼠标,键盘和其他事件。

  1. setWindowTitle("Tooltip");

此方法调用为窗口创建标题。

  1. setToolTip("This is QWidget");

setToolTip方法为QWidget对象创建一个工具提示。

  1. resize(250, 150);

在这里,我们设置窗口的宽度和高度。

  1. move(300, 300);

move()方法在屏幕上移动窗口。

  1. show();

一切准备就绪后,我们在屏幕上显示窗口。

  1. QApplication.initialize(args);
  2. new JambiApp();
  3. QApplication.exec();

这三行设置了应用。

QtJambi 简介 - 图1

图:工具提示

使窗口居中

在第二个示例中,我们将窗口置于屏幕中央。

  1. package com.zetcode;
  2. import com.trolltech.qt.gui.QApplication;
  3. import com.trolltech.qt.gui.QDesktopWidget;
  4. import com.trolltech.qt.gui.QWidget;
  5. /**
  6. * ZetCode QtJambi tutorial
  7. *
  8. * This program centers a window
  9. * on the screen
  10. *
  11. * @author jan bodnar
  12. * website zetcode.com
  13. * last modified April 2009
  14. */
  15. public class JambiApp extends QWidget {
  16. private final int WIDTH = 250;
  17. private final int HEIGHT = 150;
  18. public JambiApp() {
  19. QDesktopWidget qdw = new QDesktopWidget();
  20. int screenWidth = qdw.width();
  21. int screenHeight = qdw.height();
  22. int x = (screenWidth - WIDTH) / 2;
  23. int y = (screenHeight - HEIGHT) / 2;
  24. resize(WIDTH, HEIGHT);
  25. move(x, y);
  26. setWindowTitle("Center");
  27. show();
  28. }
  29. public static void main(String[] args) {
  30. QApplication.initialize(args);
  31. new JambiApp();
  32. QApplication.exec();
  33. }
  34. }

QtJambi 没有使窗口居中的单一方法。

  1. private final int WIDTH = 250;
  2. private final int HEIGHT = 150;

这两个常数定义了应用窗口的宽度和高度。

  1. QDesktopWidget qdw = new QDesktopWidget();

QDesktopWidget类提供有关屏幕的信息。

  1. int screenWidth = qdw.width();
  2. int screenHeight = qdw.height();

在这里,我们确定屏幕的宽度和高度。

  1. int x = (screenWidth - WIDTH) / 2;
  2. int y = (screenHeight - HEIGHT) / 2;

在这里,我们计算居中窗口的 x,y 坐标。 为了使窗口在屏幕上居中,我们需要知道屏幕的大小和窗口的大小。

  1. move(x, y);

我们将窗口移至计算出的 x,y 坐标。

退出按钮

在本节的最后一个示例中,我们将创建一个退出按钮。 当我们按下此按钮时,应用终止。

  1. package com.zetcode;
  2. import com.trolltech.qt.gui.QApplication;
  3. import com.trolltech.qt.gui.QPushButton;
  4. import com.trolltech.qt.gui.QWidget;
  5. /**
  6. * ZetCode QtJambi tutorial
  7. *
  8. * This program creates a quit
  9. * button. When we press the button,
  10. * the application terminates
  11. *
  12. * @author jan bodnar
  13. * website zetcode.com
  14. * last modified April 2009
  15. */
  16. public class JambiApp extends QWidget
  17. {
  18. public JambiApp() {
  19. setWindowTitle("Quit button");
  20. initUI();
  21. resize(250, 150);
  22. move(300, 300);
  23. show();
  24. }
  25. private void initUI() {
  26. QPushButton quit = new QPushButton("Quit", this);
  27. quit.setGeometry(30, 30, 75, 30);
  28. quit.clicked.connect(QApplication.instance(), "quit()");
  29. }
  30. public static void main(String args[])
  31. {
  32. QApplication.initialize(args);
  33. new JambiApp();
  34. QApplication.exec();
  35. }
  36. }

我们使用QPushButton。这是一个非常常见的小部件。 它是一个矩形,通常显示一个文本标签。

  1. initUI();

我们将用户界面的创建委托给initUI()方法。

  1. QPushButton quit = new QPushButton("Quit", this);

我们创建按钮小部件。 构造器的第一个参数是标签,按钮将显示该标签。 第二个参数是按钮的父窗口小部件。

  1. quit.setGeometry(30, 30, 75, 30);

我们定位和调整按钮小部件的大小。 前两个参数是按钮的 x,y 坐标。 最后两个参数是按钮的宽度和高度。

  1. quit.clicked.connect(QApplication.instance(), "quit()");

当我们点击按钮时,会发出clicked信号。 connect()方法将信号连接到对象的特定槽。 该方法的第一个参数是接收信号的对象。 在我们的例子中,它是应用对象。 第二个参数是方法,称为。 在我们的情况下,它是应用对象的quit()方法。

QtJambi 简介 - 图2

图:退出按钮

本节是 QtJambi 工具包的介绍。