zoukankan      html  css  js  c++  java
  • 第十三章 第四节 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以及状态栏的更多信息。

     

    返回目录

  • 相关阅读:
    国内10大前端团队网站
    可视化搭建前端工程
    Vue CLI环境变量和模式
    BetterScroll:可能是目前最好用的移动端滚动插件
    洛谷月赛
    CF438D The Child and Sequence
    P1447 [NOI2010]能量采集
    Cow Relays,过N条边的最短路
    Numerical Sequence(hard version),两次二分
    洛谷P3237 米特运输
  • 原文地址:https://www.cnblogs.com/ols/p/2173397.html
Copyright © 2011-2022 走看看