一步步创建Qt Widget项目+TextFinder案例(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)
创建一个基于应用的QtWidget应用程序
这个手册描述了怎样使用QtCreater创建个一个小的Qt应用程序,Text Finder.它是Qt工具Text Finder例子的简写版本。这个应用程序的用户界面通过使用Qt Designer来构造生成。逻辑上来说,这个应用程序是通过代码编辑器上编写C++代码实现的。
创建Text Finder项目案例:
1选择File(文件)> New Fileor Project(新建文件或项目) > Application(应用程序)> QtWidgets Application > Choose(选择)
接着打开了项目介绍和位置窗口
2在名称的文本框中,填写TextFinder
3在创建路径的文本框中,键入项目文件存储路径,例如:E:\Examples,接着点击”下一步”(在Windows和Linux平台)或者”继续”(在OS X平台上)。
构建套件对话框打开了:
4为运行您的项目选择构建套件,接着点击”下一步”或者”继续”
注意:如果一个套件在”工具 > 选项 >编译和运行 >Kits”,这个对话框将会跳过。
接着”类信息”对话框打开了:
5在类名的文本框中,TextFinder作为类名。
6在基类列表里,选择QWidget作为基类类型。
注意:头文件,源文件和界面文件将根据类名自动匹配。
7点击Next和继续。
接着”项目管理”窗口被打开:
8检查项目设置,并且点击”完成”(在Windows和Linux平台)或者”继续”(在OS X平台)
TextFinder项目包含以下文件:
textfinder.h |
截图: |
textfinder.cpp |
|
main.cpp |
|
textfinder.ui |
|
TextFinder.pro |
添加缺少部分:
开始设计用户界面,添加缺少的代码,实现查找功能。
设计用户界面:
1在Qt Creater中的Edit编辑模式里,双击textfind.ui文件,转到Qt设计界面。
2拖拽下面的部件到界面中:
Label(QLabel) |
|
Line Edit(QLineEdit) |
|
PushButton(QPushButton) |
注意:如果想快速定位这些部件,可以使用在工具栏上部的搜索窗口。
例如,查找Label部件,可以输入Label进行查找:
3双击Label部件,键入文本”keyword”
4双击Push Button部件,键入文本”Find”
5在属性面板,改变objectName为findButton
6 按Ctrl+A(或者Cmd+A)选中这些部件,点击”水平布局”(在Linux和Window平台上按Ctrl+H,在OS X平台上按Ctrl +Shift + H)应用一个水平布局(QHBoxLayout)。
7拖拽一个Text Edit部件(QTextEdit)到界面上去。
8选中设计窗口空白区域,点击”垂直布局”(或按Ctrl + L)来应用一个水平布局(QVBoxLayout)。
应用水平和垂直布局确保在不同的屏幕上的自适应。
9当用户点击Find按钮的时候,将调用一个find方法,如果您想实现这个功能,您可以使用Qt中的信号(signals)和槽(slots)机制。当特定的事件发生时候一个信号(signal)将被发散(emitted),与此同时,一个槽函数(slot)将会被调用来响应这个特定的信号。在Qt Widgets的Qt Designer中有一些预先定义好的信号(signals)和槽(slots)可以供您直接使用。接下来为find函数添加槽:
右击”Find”按钮打开一个右键菜单。
选择 “转到槽” >clicked(),接着选择.
一个私有类型的槽函数on_findButton_clicked()被添加到了头文件textfinder.h中去,一个私有的函数TextFinder::on_findButton_clicked()被添加到源文件textfinder.cpp源文件中。
截图如下:
头文件部分截图:
10按Ctrl+S(或Cmd + S)保存您的改变。
如果想了解更多关于通过QtDesigner来设计界面的信息,查看Qt Designer手册(http://doc.qt.io/qt-5/qtdesigner-manual.html)
完善头文件:
在textfinder.h文件里面已经有了必要的头文件#include,一个构造函数,一个析构函数,和一个UI对象,你需要添加私有的函数loadTextFile(),读取并且显示文本的中的内容到QTextEdit中去。
1在项目面板中的编辑视图,双击textfinder.h文件,打开并且编辑它。
2添加私有函数到私有区域,在Ui::TextFinder指针后面,插入一下的代码片段
privateslots: voidon_findButton_clicked(); private: Ui::TextFinder*ui; voidloadTextFile(); //加载文件的方法 |
现在头文件已经完成了,接下来转到源文件:textfinder.cpp.
1在项目面板中的编辑视图,双击源文件textfinder.cpp,开始编辑。
#include <QFile> #include <QTextStream> |
voidTextFinder::loadTextFile() { //加载资源文件input.txt,关于资源文件的加载将下文讲述 QFileinputFile(":/input.txt"); inputFile.open(QIODevice::ReadOnly); QTextStreamin(&inputFile); QStringline=in.readAll(); inputFile.close(); ui->textEdit->setPlainText(line); QTextCursorcursor=ui->textEdit->textCursor(); cursor.movePosition(QTextCursor::Start,QTextCursor::MoveAnchor,1); } |
4在on_findButton_clicked()槽函数里,通过QTextEdit::find()方法可以查找在文本文件中的字符串。下面是代码片段:
voidTextFinder::on_findButton_clicked() { QStringsearchString=ui->lineEdit->text(); ui->textEdit->find(searchString,QTextDocument::FindWholeWords); } |
5 当这两个方法都完成之后,在构造方法里添加一行代码来调用loadTextFile(),代码片段如下:
TextFinder::TextFinder(QWidget*parent): QWidget(parent), ui(newUi::TextFinder) { ui->setupUi(this); //调用加载文件的方法 loadTextFile(); } |
on_findButton_clicked()槽函数将会被自动生成到ui_textfinder.h中下面的一行代码调用:
QMetaObject::connectSlotsByName(TextFinder); |
您需要一个资源文件(.qrc),这个资源文件嵌入了您输入的文本文件。这个文本文件可以是任意添加了一段文本的.txt文件。创建一个叫做input.txt的文件,并且将它存储在和源代码所在的同级目录里。
1选择File (文件)> New File or Project(新建文件或项目) > Qt>Qt Resource File(Qt资源文件)> Choose;
3在路径文本框中,键入E:\Examples\TextFinder,点击”下一步”或者”继续”。项目管理对话框打开了:
4在”添加到项目”域,选择TextFinder.pro,点击完成。在代码编辑器中打开这个.qrc文件.
5右击textfinder.qrc,选择右键菜单中的addPrefix
6在Prefix文本域里面,用斜线(/)替换掉默认的prefix.
7右击textfinder.qrc,选择右键菜单中的”添加现有文件”。然后定位到input.txt文件所在的位置,添加进去。
至此为止,您已经有了所有必要的文件,您可以点击按钮来编译和运行您的程序了。截图如下:
一步步创建Qt Widget项目+TextFinder案例(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)相关推荐
- 创建一个QT for Android的传感器应用应用程序(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)
这个手册描述了使用Qt Quick面访的方式在Android和ios设备上开发QtQuick应用程序的方法.我们使用Qt Creator实现一个QtQuick应用程序,这个应用程序基于加速器的值 ...
- Qt Creator创建Qt Quick项目
Qt Creator创建Qt Quick项目 Qt Creator创建Qt Quick项目 创建Qt Quick应用程序 创建基于Qt Quick的Python应用程序 创建Qt Quick UI项目 ...
- 如何创建Qt quick应用程序
Qt(发音为" cute",而不是" cu-tee")是一个跨平台框架,通常用作图形工具包,它不仅创建CLI应用程序中也非常有用.而且它也可以在三种主要的台式机 ...
- 如何使用eclipse软件创建一个Java项目?
同学们在参加Java的时候老师肯定会教给你们如何去创建一个项目,这里怕有些同学没记住,所以单独为大家分享一篇如何使用eclipse软件创建一个Java项目教程,感觉有用的话收藏转发一下~ eclips ...
- IDEA 创建Maven Web项目
背景 公司有一个非常老的项目,决定进行简单重构,纳入自动化流水线部署的序列.原项目采用很古老的Jar包依赖模式,也就是直接将jar包放在项目中.同时,项目结构也非常奇特,不是标准的Web项目目录结果. ...
- Qt Creator创建基于Qt Widget的应用程序
Qt Creator创建基于Qt Widget的应用程序 创建基于Qt Widget的应用程序 创建文本查找器项目 设计用户界 头文件 源文件 创建资源文件 编译并运行程序 创建基于Qt Widget ...
- Java开发环境的搭建以及使用eclipse从头一步步创建java项目
原文:出自本人的Linux博客http://blog.csdn.net/unix21/article/details/18813173 一.Java 开发环境的搭建 这里主要说windows环境下怎么 ...
- vs2019中如何创建qt项目_在VS2015中创建Qt项目【VS+Qt项目开发系列】(二)
在VS2015中创建Qt项目[VS+Qt项目开发系列](二) 发布时间:2018-04-20 22:44, 浏览次数:1269 , 标签: VS Qt 在上一篇[VS+Qt项目开发](一)在VS201 ...
- 第二章 Qt Widgets项目的创建、运行和发布的过程
2019-9-10 新建一个Qt Widgets项目的过程我就不在这里赘述了,我们这里新建一个 " helloworld " 项目,类名叫做HelloDialog,下面对各个文件进 ...
最新文章
- hadoop源代码组织结构与阅读技巧
- 信息系统项目管理知识--项目沟通管理
- Python Web框架Tornado的异步处理代码演示样例
- LookupError: unknown encoding: utf-8
- 百年GE濒临破产,传奇霸业何以衰亡?
- 基于Java毕业设计在线购书商城系统源码+系统+mysql+lw文档+部署软件
- C#之CAD二次开发笔记(1) 开发环境测试
- 互联网公司的岗位构成
- HTML中,使用hover属性完成鼠标悬停切换图片效果
- WSL (Windows Subsystem for Linux) wsl1+wsl2+对比+在线安装+离线安装+版本转换+右键菜单+外网访问
- Tornado 源码分析(一)
- 【自走棋】地图格子高亮效果
- 友芝友生物冲刺港交所上市:极其依赖单一供应商,周鹏飞为董事长
- 消除VMware启动虚拟机时的floppy0提示的方法
- python_绘制动态地图
- UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xca in position 358: in
- 苹果云服务icloud_苹果手机icloud手动备份和还原个人用户资料
- 转oracle数据库字符集AL32UTF8修改为ZHS16GBK即从超集到子集
- 如何将图片放大不改变清晰度?
- 深聊全链路压测之:第二十三讲 | 如何改造性能监控。
热门文章
- 一篇带你搞透回溯算法
- wxWidgets:wxModalDialogHook类用法
- wxWidgets:wxFileType类用法
- boost::mpl模块实现transform_view相关的测试程序
- boost::mp11::mp_intersperse相关用法的测试程序
- ITK:比较两个图像并将输出像素设置为最小值
- VTK:PolyData之ExtractPolyLinesFromPolyData
- VTK:图片之ImageEllipsoidSource
- Qt Creator建立一个通用项目
- Qt Creator加载占位符数据