
英文原文来自: 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() 调用造成的。
试试改变窗口的大小。按钮怎么变化?当你使用一个更大的字体来运行程序的时候,按钮的高度发生 咯什么变化?当你把窗口弄得非常小的时候,发生咯什么?
HxLauncher: Launch Android applications by voice commands