第六章 多文档界面
来源:互联网 发布:php接口开发视频教程 编辑:程序博客网 时间:2024/05/17 06:44
在主窗口的中央区域能够提供多个文档的那些应用程序就称为多文档界面(MDI)。Qt中把QMdiArea类作为中央窗口部件,并且每一个文档窗口都是这个类的子窗口。
对于多文档界面应用程序有一个管理,就是为他提供一个Window菜单,这个菜单中包含一些管理这个窗口以及窗口列表的命令。激活窗口会使用一个选择标记表示出来。用户在window菜单中单击代表特定窗口的一项,就可以激活任何窗口。
界面元素如下;
代码大部分与Spreadsheet相似,所以只粘贴比较重要的,工程在底下上传。
解释在注释中
MainWindow::MainWindow(){ mdiArea = new QMdiArea;//创建一个QMdiArea并设置为中央窗口部件 setCentralWidget(mdiArea);//把信号与将要用来保持更新Window菜单的槽连接起来,并且会根据应用程序的状态来启用或禁用那些动作 connect(mdiArea, SIGNAL(subWindowActivated(QMdiSubWindow*)), this, SLOT(updateActions())); createActions(); createMenus(); createToolBars(); createStatusBar(); setWindowIcon(QPixmap("images/icon.png")); setWindowTitle(tr("MDI Editor")); QTimer::singleShot(0, this, SLOT(loadFiles()));}
void MainWindow::updateActions(){ bool hasEditor = (activeEditor() != 0); bool hasSelection = activeEditor() && activeEditor()->textCursor().hasSelection(); saveAction->setEnabled(hasEditor); saveAsAction->setEnabled(hasEditor); cutAction->setEnabled(hasSelection); copyAction->setEnabled(hasSelection); pasteAction->setEnabled(hasEditor); closeAction->setEnabled(hasEditor); closeAllAction->setEnabled(hasEditor); tileAction->setEnabled(hasEditor); cascadeAction->setEnabled(hasEditor); nextAction->setEnabled(hasEditor); previousAction->setEnabled(hasEditor); separatorAction->setVisible(hasEditor); if (activeEditor()) activeEditor()->windowMenuAction()->setChecked(true);}每当一个新的子窗口被激活,或者在关闭最后一个子窗口时,都会发射subWindowActivated信号。在后一种状况下,他的参数就是一个空指针。信号会连接到updateActions槽。只有在存在激活窗口时,绝大多数的菜单项才会起作用。
工程代码链接:http://pan.baidu.com/s/1jIMOVjC 密码:yxj8
阅读全文
0 0
- 第六章 多文档界面
- 第十章 多文档界面
- 第19章 多文档界面
- 第 19 章 多文档界面
- 多文档界面(MDI)
- 5-多文档界面应用程序
- 创建多文档界面.doc
- 如何设计多文档界面
- VC++60 第十五章 多文档界面的程序
- 第六节 文档处理
- C#中的多文档界面与多窗体界面
- MFC框架界面开发(三):多文档界面
- .NET中多文档界面排版
- 6.8 创建多文档的界面
- Win32教程32-多文档界面(MDI)
- C# 多文档界面的实现
- 简单说几句vs2008多文档界面建立
- C#的多文档界面(MDI)
- SmartGit(试用期30后),个人继续使用的方法
- 浅谈UML的概念和模型之UML九种图
- MSVCRTD.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 "int __cdecl invoke_main(void)"
- 购物车展示 CheckBox选中与否
- 添加数据给表格+隔行换色
- 第六章 多文档界面
- 会声会影提示已停止工作解决方法(修复工具)
- 解决`java.long.NoClassDefFoundError`
- js访问文件服务器实现文件下载
- thinkphp3.2和Workerman 源码整合
- android studio 利用zxing实现二维码扫描附demo
- redis缓存数据持久化
- 使用openvas简单的操作实例(KALI Linux 2.0)
- Linux环境下程序报libawt.so: libXp.so.6: cannot open shared object file: No such file or directory错误