Archive:Development/Tutorials/Qt4 Ruby Tutorial/Chapter 01 (zh CN)

From KDE TechBase
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Template:I18n/Language Navigation Bar (zh CN)

Template:TutorialBrowser (zh CN)

Hello World!

档案:

概览

第一个程序是一个简单的「Hello world」范例。它仅包含了你完成并运作一个 Qt 应用程序的最少需求。上图是这支程序的屏幕撷图。

以下是完整的应用程序原始码:

require 'Qt4'

app = Qt::Application.new(ARGV)

hello = Qt::PushButton.new('Hello World!')
hello.resize(100, 30)
hello.show()

app.exec()

简介

QtRuby 应用程序的上层通常只需要执行一些初始化,然后将控制权传递给 Qt 函式库。然后透过事件告诉程序用户的操作。

在每个使用 Qt 的 GUI 应用程序,必须有一个确实的Qt::Application物件。Qt::Application管理各种应用程序的资源,如默认字体和光标(cursor)。

Qt::PushButton 是一个 GUI push 按钮,用户可以按下和放开。它管理自己的外观和感觉,就像所有其他的Qt::Widget。widget 是一个用户界面对象,可以处理用户的输入和绘制图形。程序设计师可以改变整体外观和感觉以及它的一些小型属性(如颜色),以及 widget 的内容。Qt::PushButton可以显示文字或Qt::Icon

一行一行的浏览

require 'Qt4'

此行载入 QtRuby 扩充。

app = Qt::Application.new(ARGV)

app 是程序的 Qt::Application 实例(instance)。它是在这里建立的。我们传递 ARGVQt::Application 建构子(constructor),使之能够处理某些标准的命令行参数(如 X11 的 -display)。所有 Qt 能识别的命令行参数将会从 ARGV 移除 。

注意: 最重要的是, Qt::Application 对象要在使用任何 Qt 的窗口系统组件之前建立。

hello = Qt::PushButton.new('Hello World!')

Qt::Application 后,第一个出现的窗口系统程序代码:建立一个 push 按钮。

该按钮设定为显示文字「Hello world!」。因为我们没有指定父窗口(作为 Qt::PushButton 建构子的第二个参数),该按钮将有它自己的窗口、自己的窗框和标题栏。

hello.resize(100, 30)

该按钮设定为100像素(pixels)宽和30像素高(不包括窗框,它是由窗口系统提供的)。我们可以呼叫 Qt::Widget::move() 来指派 widget 在特定的屏幕位置,不过这里我们让窗口系统选择位置。

hello.show()

当您建立 widget 时,它是不可见的。您必须呼叫QQt::Widget::show() 使其可见。

app.exec()

这里是我们的程序将控制权传递到 Qt 的地方。Qt::CoreApplication::exec() 会在应用程序结束时返回。(Qt::CoreApplicationQt::Application的基础类别。它实现Qt::Application 的核心,非GUI 功能,并且可用于开发非 GUI 应用程序。)

Qt::CoreApplication::exec(),Qt 接收和处理用户和系统事件,并传递这些到适当的 widget。

你现在应该尝试执行该程序。

执行应用程序

当您执行应用程序,您会看到一个放着单一按钮的小窗口。在按钮上您可以读到那句名言:「Hello world!」

练习

尝试调整窗口大小。按下按钮。如果您正在执行 X11,尝试加入 -geometry 选项来执行程序(例如,-geometry 100x200+10+20)。