《QT编程课件应用程序主窗口.ppt》由会员分享,可在线阅读,更多相关《QT编程课件应用程序主窗口.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、QT 编程编程第五章第五章 应用程序主窗口应用程序主窗口目标:本章旨在向学员介绍各种应用程序主窗口的相关内容: 掌握应用程序主窗口各部分使用方法。 掌握富文本处理,拖放等相关技术。学时:学时:3 3 学时学时教学方法:讲授教学方法:讲授pptppt上机操上机操作作+ +实例演示实例演示应用程序主窗口应用程序主窗口窗口类的继承体系QObjectQActionQActionGroupQWidgetQFrameQDockWidgetQStatusBarQWidgetActionQMainWindowQMenuBarQToolBarQSizeGripQMidSubWindowQMenuQAbstrac
2、tScrollAreaQPlainTextEditQTextEditQMidAreaQTextBrowser主程序窗口框架主程序窗口框架菜单栏工具栏Dock部件状态栏中心部件一个widget就是一个窗口,Qt提供一个QMainWindow类管理主窗口程序菜单栏菜单栏Desinger中编辑菜单在Desinger中向Action编辑器中拖入菜单菜单栏菜单栏通过代码编辑菜单/ 添加编辑菜单 QMenu *editMenu = ui-menuBar-addMenu(tr(编辑(&E); / 添加打开菜单 QAction *action_Open = editMenu-addAction( QIcon(
3、:/myImage/images/open.png),tr(打开文件(&O); / 设置快捷键action_Open-setShortcut(QKeySequence(Ctrl+O); / 在工具栏中添加动作 ui-mainToolBar-addAction(action_Open);QMenuBar:菜单栏管理类QMenu :菜单窗体组件QAction :抽象用户界面操作工具栏工具栏QToolBar:包含了一组控件的可移动面板:包含了一组控件的可移动面板 / 在工具栏中添加动作 ui-mainToolBar-addAction(action_Open); / 向工具栏添加QToolButto
4、n按钮 ui-mainToolBar-addWidget(toolBtn); / 创建QSpinBox QSpinBox *spinBox = new QSpinBox(this); / 向工具栏添加QSpinBox部件 ui-mainToolBar-addWidget(spinBox);QToolBar:菜单栏管理类addWidget:插入一个窗体addAction:选项添加到工具栏中心部件中心部件在窗口的中心区约放置一个中心部件在窗口的中心区约放置一个中心部件对于文档程序来讲一般是一个对于文档程序来讲一般是一个QTextEdit。 / 新建文本编辑器部件 QTextEdit *edit =
5、 new QTextEdit(this); / 使用QMdiArea类的addSubWindow()函数 /创建子窗口,以文本编辑器为中心部件 QMdiSubWindow *child = ui-mdiArea-addSubWindow(edit); child-setWindowTitle(tr(多文档编辑器子窗口); / 显示子窗口 child-show();addSubWindow:创建子窗口show:显示子窗口Dock部件部件QDockWidget可以停靠在中心部件的旁边可以悬浮在主窗口上面就像一个工具箱,放置其他部件状态栏状态栏状态信息分为三类:临时信息,一般信息,永久信息。临时信息
6、: showMessage一般信息: addWidget永久信息: addPermanentWidget / 显示临时消息,显示2000毫秒即2秒钟 ui-statusBar-showMessage(tr(欢迎),2000); / 创建标签 QLabel *permanent = new QLabel(this); / 标签样式 permanent-setFrameStyle(QFrame:Box | QFrame:Sunken); / 显示信息 permanent-setText(“welcom); / 将标签设置为永久部件 ui-statusBar-addPermanentWidget(p
7、ermanent);自定义菜单自定义菜单菜单中是否可以添加各种部件?-使用自定义菜单创建继承创建继承QWidgetAction的类的类class MyAction : public QWidgetAction实现实现createWidget虚函数,添加部件虚函数,添加部件QWidget* createWidget(QWidget *parent)富文本处理富文本处理富文本文档中可以使用颜色,字体,表格等多种格式。QTextEdit是一个高级的所见即所得的支持使用HTML风格标记的多信息文本格式的查看器/编辑器。QTextEditQTextCursorQTextDocumentQTextFram
8、eFormatQTextFrameQTextBlockFormatQTextBlockQTextTableFormatQTextTableQTextListFormatQTextList文本块文本块一个文本块可以看作一个段落,回车换行可以看作一个新的文本块。遍历文本方法遍历文本方法 QTextDocument *document = ui-textEdit-document(); / 获取文档的第一个文本块获取文档的第一个文本块QTextBlock block = document-firstBlock();for(int i=0; iblockCount(); i+) qDebug() tr
9、(文本块文本块%1, 文本块首行行号为文本块首行行号为:%2, 长度为长度为:%3,内容为:内容为:).arg(i).arg( block.firstLineNumber(). arg(block.length() textEdit-find( string, QTextDocument:FindBackward);FindFlags说明说明FindBackward反向查找反向查找FindCaseSensitively区分大小写区分大小写FindWholeWords全文字查找全文字查找语法高亮语法高亮语法高亮:输入关键字时会显示不同的颜色。class MySyntaxHighlighter :
10、 public QSyntaxHighlighter void MySyntaxHighlighter:highlightBlock(const QString &text)QTextCharFormat myFormat; /字符格式myFormat.setFontWeight(QFont:Bold);myFormat.setForeground(Qt:green);QRegExp expression(bcharb);/要匹配字符串的长度int length = expression.matchedLength(); /对要匹配的字符串设置格式setFormat(index, length
11、, myFormatHTMLQTextEdit:支持使用:支持使用HTML标签和标签和CSS属性属性 / 在编辑器中添加文本并且使用html标签 ui-textEdit-append( tr(使用使用HTML);拖放打开文件拖放打开文件事件:事件:拖动进入事件(拖动进入事件(drag)void MainWindow:dragEnterEvent放下事件放下事件 (drop)void MainWindow:dropEvent事件函数事件函数接收动作:接收动作:acceptProposedAction 忽略该事件:忽略该事件:ignore 自定义拖放自定义拖放事件:事件:鼠标按下事件鼠标按下事件M
12、ainWindow:mousePressEvent拖动进入事件拖动进入事件 void MainWindow:dragEnterEvent拖动事件拖动事件 void MainWindow:dragMoveEvent放下事件放下事件 void MainWindow:dropEvent打印文档打印文档打印机对象打印机对象 QPrinter 打印对话框打印对话框QPrintDialog选中区域选中区域 QPrintDialog:addEnabledOption按下了打印按钮按下了打印按钮 QPrintDialog :Accepte打印预览打印预览创建打印预览对话框创建打印预览对话框 QPrintPre
13、viewDialog需要关联相关的信号槽需要关联相关的信号槽connect( &preview, SIGNAL(paintRequested(QPrinter*), this, SLOT(printPreview(QPrinter*) );打印打印PDF QPrinter printer; / 指定输出格式为指定输出格式为pdfprinter.setOutputFormat(QPrinter:PdfFormat);printer.setOutputFileName(fileName);ui-textEdit-print(&printer);谢谢!谢谢!Copyright 2008 版权所有 东软集团