StupidBeauty
Read times:1212Posted at:Wed Feb 16 02:32:18 2011

Qt Jambi4.4.3文档翻译:Qt Jambi教程3-家族价值,Qt Jambi Tutorial 3 - Family Values

英文原文来自 http://doc.trolltech.com/qtjambi-4.4/html/com/trolltech/qt/qtjambi-tutorial3.html

此文章由飞豚扫描器博客荣誉出品: http://stupidbeauty.com/AirPhin

[上一篇 Qt Jambi教程2 - 让它退出][Qt Jambi教程][下一篇 Qt Jambi教程4 - 来点部件]

代码

 


这个例子展示的是如何创建亲代和子代部件。

我们搞简单点,只使用一个亲代部件、一个子代部件

public class FamilyValues

{

   public static void main(String args[])

   {

     QApplication.initialize(args);

 

 

     QWidget window = new QWidget();

 

     window.resize(200, 120);

 

 

 

     QPushButton quit = new QPushButton("Quit", window);

 

     quit.setFont(new QFont("Times", 18, QFont.Weight.Bold.value()));

 

     quit.setGeometry(10, 40, 180, 40);

 

 

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

 

     window.setWindowTitle("FamilyValues");

 

     window.show();

 

     QApplication.exec();

   }

}

一行行地看

     QWidget window = new QWidget();

这里我们简单地创建一个普通的部件对象。QWidget 类是所有用户界面对象的基类。部件是用户界面的原子 : 它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制出一个表示它自己的图形。一个部件的外观被它的亲代部件裁剪 ,被它前面的部件遮挡。

像这个部件这样没有嵌入到某个亲代部件中去的部件被叫做窗口。通常,窗口拥有它们自己的窗口边 框和任务栏条目,那是由窗口系统提供的。没有亲代部件的部件永远是一个独立的窗口。它在屏幕上的初始位 置是由窗口系统控制的

     window.resize(200, 120);

我们将窗口的宽度设置为200 像素,高度设置为120 像素。

     QPushButton quit = new QPushButton("Quit", window);

一个孩子出生咯。这个 QPushButton在 创建的时候有一个亲代部件(窗口 window )。一个子代部件永远都会显示在它的亲代部件的区域中 。在显示出来之后,它会被亲代部件的边界所裁剪。默认地 , 它会位于亲代部件的左上解,也就是(0, 0)的位置。

     quit.setGeometry(10, 40, 180, 40);

QWidget.setGeometry() 方法有4个参数:前 2个参数是这个按钮的左上角的 x 和y 坐标。坐标是相对于亲代部件的 。后2个参数是按钮的宽度和高度。结果就是 一个从(10, 40)延伸到(190, 80)的按钮。

     window.show();

当一个亲代部件被显示出来的时候,它会调用所有子代部件的显示函数(除咯那些明确使用 QWidget .hide()隐藏起来的之 外)。

运行程序

这个按钮不再充满整个窗口咯。它位于窗口中(10, 40)的位置,大小是(180, 40) ,这是由那个 QWidget .setGeometry() 调用造成的。

练习

试试改变窗口的大小。按钮怎么变化?当你使用一个更大的字体来运行程序的时候,按钮的高度发生 咯什么变化?当你把窗口弄得非常小的时候,发生咯什么

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands