QT核心编程之会话管理 (6)
创始人
2024-08-01 10:51:05
0

QT核心编程之会话管理是本节介绍的内容,QT核心编程我们要分几个部分来介绍,想参考更多内容,请看末尾的编辑推荐进行详细阅读,先来看本篇内容。

一个会话是一组正在运行的应用程序,它们每个都一个特殊的状态。会话被一个称为会话管理器(Session manager)的服务程序来控制。在会话里每个参与的应用程序被称为会话客户。会话管理器为用户发出命令给它的客户。这些命令会使客户提交没有保存的变化(如:保存打开的文件),使客户为将来的会话保存状态或关机。这样的一些操作被称为会话管理

通常情况下,一个会话由用户在其桌面上同时运行的所有应用程序组成。在Unix/X11下,一个会话可能包括运行在不同计算机和多个显示器上的应用程序。

1、会话管理

(1)关闭一个会话

一个会话可以被会话管理器关闭,通常在用户logout时为用户关闭的。一个系统可以在紧急情况下执行自动关闭,例如:在掉电时。正常关机和掉电关机有很大的不同,在正常关机时,用户可能想与应用程序交互,并确定哪些文件应该保存,哪些应该删除。在掉电关机时,没有时间进行交互,甚至于用户不在现场。

(2)不同平台上的协议和支持

Mac OS X和MS-Windows对应用程序还没有完全的会话管理,如:没法恢复以前的会话。它们支持正常的logout,在得到用户确认后,应用程序有机会取消进程。这是与QApplication::comm.itData()方法相对应的功能。X11自从X11R6后,支持完整的会话管理。

(3)让会话管理与Qt一起工作

通过重载QApplication::comm.itData()来使用你的应用程序参加正常的logout处理。如果你仅应用在MS-Windows平台上,就只能提供这个重载了。你的应用程序***提供一个如图5的程序关闭对话框。

QT核心编程之会话管理

图5 程序关闭对话框

对于完全的会话管理(目前仅X11R6),你还应该关心应用程序的状态存储和下一个会话生命周期恢复状态。

2、测试和调试会话管理

在Mac OS X和Windows上的会话管理支持由于这些操作系统本身的这种功能的缺乏而受到限制。为了简单地关闭会话并验证你的应用程序是否如期望的那样执行,你***启动一个其它的应用程序。这个应用程序将随后得到关闭消息,这样允许你取消关闭。

在Unix上你能使用一个支持标准的X11R6会话管理,或使用X联盟提供的会话管理器xsm。xsm是标准X11R6安装的一部分。它是一个具有图形界面的会话管理器,你可能用它来管理会话。

下面是使用xsm的一个简单的方法:

(1)运行X11R6.

(2)在你的home目录下将创建仅包含下面一行的.xsmstartup文件:

  1. xterm  

这将告诉xsm的default/failsafe(缺省/失败安全)会话仅有xterm。否则,xsm将尝试触发包括窗口管理器twm在内多个客户,这没有什么用途。

(3)现在从另一个终端窗口启动xsm。一个会话管理器和xterm将出现。xterm有一个其它的shell没有的属性:在xterm的shell里,SESSION_MANAGER环境变量指向了你刚启动的会话管理器。

(4)在新的xterm窗口中启动你的应用程序,应用程序将自动连接它到会话管理器。你能使用ClientList按钮检查连接是否成功。

注意:当你启动或关闭会话管理的客户时,不要保护ClientList为打开状态。否则,xsm可能崩溃。

(5)使用会话管理器的Checkpoint和Shutdown按钮的不同设置检查你的应用程序执行行为。本地保存类型表示客户端应该保存它们的状态。它对应着QApplication::saveState()函数。全局保存类型请求应用程序保存它们没存储的变化到***的全局可访问的存储中。它触发QApplication::commitData()。

(6)在用户桌面上xsm是一个有用的会话管理器。作为一个测试环境它是稳定的而有用的。

小结:QT核心编程之会话管理的内容介绍完了,希望本既然内容对你有所帮助,更多资料参考在下面的编辑推荐。

【编辑推荐】

 QT核心编程之Qt模板库(1)

QT核心编程之集合类 (2)

QT核心编程之Qt线程 (3)

QT核心编程之鼠标拖放 (4)

QT核心编程之键盘焦点 (5)

QT核心编程之调试技术 (7)

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...