• 第十三章 第四节 ApplicationWindow类


    第四节 ApplicationWindow类

    返回目录

     

    本章中的HelloWorld程序继承了ApplicationWindow类。ApplicationWindow正如它的名字一样,表示了一个窗口应用程序。它有一个父亲Shell,是从构造函数传进去的:

    ApplicationWindow(Shell parentShell)

    如果parentShell是null,这个ApplicationWindow就代表一个顶层窗口,否则它就是parentShell的一个孩子。它包含了对菜单栏、工具条、CoolBar以及状态栏的支持。

    当你构造一个ApplicationWindow的时候,除了构造它本身以外没有什么事情会发生。当你调用它的open()方法的时候,会开始很多工作,并且最有趣的事情发生在当父亲Shell为null的时候。在这种情况下,父亲Shell被创建,然后configureShell()被调用。ApplicationWindow中的configureShell实现依次做以下事情:

    • 设置默认图像
    • 设置一个GridLayout
    • 如果菜单栏被设置了,就创建一个菜单
    • 将布局变为ApplicationWindowLayout
    • 如果工具栏被设置了,就创建一个工具栏
    • 如果CoolBar被设置了,就创建一个CoolBar
    • 如果状态栏被设置了,就创建一个状态栏
    • 你可以重载configureShell()以改变默认的行为。

    接下来,这个ApplicationWindow会被按需要改变尺寸,以使得它不会超出屏幕大小。接着它被打开,如果它被设置为阻塞模式——也就是说,setBlockOnOpen(true)曾被调用——它将进入事件循环,直到被关掉为止。

    在程序中使用ApplicationWindow,通常创建一个包含应用程序相关代码的子类继承它。许多ApplicationWindow的方法,以及它的父类Window的方法,都是protected的。你可以从继承的类中调用它们,也可以重载它们。比如,你为了给应用程序加一个菜单栏,可以在父亲Shell被创建之前调用protected的方法addMenuBar()——通常是在构造函数中。这个方法继而会调用protected的方法createMenuManager(),你可以重载它以创建适合这个程序的菜单。第十六章包含了关于创建菜单栏、工具条、CoolBar以及状态栏的更多信息。

     

    返回目录

  • 相关阅读:
    NSString的几种常用方法
    ios页面间传递参数四种方式
    ios category类别的使用
    iOS: 枚举类型 enum,NS_ENUM,NS_OPTIONS
    IOS导航栏的使用方法
    报错:Expected one result (or null) to be returned by selectOne(), but found: 6
    Spring小知识
    spring动态代理
    登录和注册功能思路
    sql语句实例练习
  • 原文地址:https://www.cnblogs.com/ols/p/2173397.html
Copyright © 2020-2023  润新知