Qt学习——Creating a Qt Widget Based Application
来源:互联网 发布:北方广播电视网络 编辑:程序博客网 时间:2024/06/05 02:25
期末的课设需要做一个小项目,我的计划是用Qt和C++,记录自己学习Qt的历程。
简单翻译Qt的教程文档。方便自己日后查看吧。
版本:Qt_5_4_0_MinGW_32bit
建立应用:TextFinder
新建项目 TextFinder
- 选择File(文件) > New File or Project > Application > Qt Widgets Application > Choose.
- 名称:TextFinder
- 注意保存路径不能有中文!!!否则编译报错!!!
- 为项目选择kits,进行下一步
如果唯一的kit已经在Tools(工具)->Options>Build&Run>Kits中指定,这一步可以跳过
-文档里是这样↓
我的操作界面
因为我的已经指定了
- Details,类名TextFinder,基础类QWidget,头文件和源文件会自动匹配类名。
- 根据提示next或continue,finish即可。
- 打开项目目录,包含以下几个文件
textfinder.h
textfinder.cpp
main.cpp
textfinder.ui
textfinder.pro
补全文件内容
1.设计用户界面(Designing the User Interface)
- 在设计板块,双击项目列表里的textfinder.ui文件进入设计师模式。(In the Editor mode, double-click the textfinder.ui file in the Projects view to launch the integrated Qt Designer.)
- 拖拽进下列窗口小部件。
Label,Line Edit,PushButton.
为了方便寻找小部件,可以利用左侧列表上的搜索栏。 - 双击Label更改内容为Keyword
- 双击PushButton更改内容为Find
- 在右下角属性栏将objectName更改为findButton
- 按下Ctrl+A即可选中所有小部件,右键选择Lay out Horizontally(或者按下Ctrl+H:Windows和Linux,Ctrl+shift+H:OSX)使水平放置
- 选中屏幕并点击Lay out Vertically(或按Ctrl+L)实现垂直布局。应用了Horizontal和Vertical布局确保该样式能适应各种屏幕尺寸。
- 为了当用户按下find按钮时实现find的功能,需要使用Qt的信号标记和槽,当一个事件发生时信号发射并且槽的功能是实现对信号的响应。Qt widgets有现成的信号和槽你可以直接在设计模式使用。为find功能添加槽。
右键find按钮,选择Go to Slot>clicked(),(转为槽>clicked())。
完成选择后,on_findButton__clicked()就加入到了头文件里并且生成了一个private function。TextFinder::on_findButton_clicked()加入到的头文件和源文件里。 - 按下Ctrl+S进行保存。(后续修改完成后也应及时保存)
2.补全头文件
- 头文件里已经包含了必要的#include,一个构造器(constructor),一个销毁器?(destructor)和一个ui对象。我们需要添加一个private function,loadTextFile().
- 双击textfinder.h进行编辑
- 在Ui::TextFinder后加以下代码
private slots: void on_findButton_clicked();private: Ui::TextFinder *ui; void loadTextFile();
3.补全源文件
- 双击textfinder.cpp进入编辑
- 添加以下代码
void TextFinder::loadTextFile(){ QFile inputFile(":/input.txt"); inputFile.open(QIODevice::ReadOnly); QTextStream in(&inputFile); QString line = in.readAll(); inputFile.close(); ui->textEdit->setPlainText(line); QTextCursor cursor = ui->textEdit->textCursor(); cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1);}
- 在开头添加
#include <QFile>#include <QTextStream>
- 在on_findButton_clicked()槽里,添加以下代码,QTextEdit::find()模块用来在文件里查找字符串
void TextFinder::on_findButton_clicked(){ QString searchString = ui->lineEdit->text(); ui->textEdit->find(searchString, QTextDocument::FindWholeWords);}
- 上述完成后,在构造器(constructor)中如下添加一行代码。
TextFinder::TextFinder(QWidget *parent) : QWidget(parent), ui(new Ui::TextFinder){ ui->setupUi(this); loadTextFile();}
4.创建一个源文件
需要一个源文件(.qrc)嵌入传入的文件。传入的文件可以是任何带着段落的.txt文件。创建一个input.txt文件把它存在textfinder文件夹里。
- 添加源文件:选择 File > New File or Project > Qt > Qt Resource File > Choose
- 名称:textfinder
- 输入本地路径。
- 在Add to project里,选择TextFinder.pro点击finish或done完成添加。
- 右键选择Add > Add Prefix.名字/。
- 右键选择 Add > Add Files,添加进刚刚本地保存的input.txt文件。
5.编译并运行项目!
点击左下角绿色三角即可!
PS.编译运行过一次后,储存该项目文件夹下出现了另一个文件夹
下一步我准备了解一下这个文件夹的各个内容吧。
(有些名词可能翻译过来并不准确,不过我意在了解操作)
阅读全文
0 0
- Qt学习——Creating a Qt Widget Based Application
- Creating a GUI application using Qt
- Creating a Qt Quick Application(译)
- A simple QT application
- Creating a Microsoft .NET Compact Framework-based Process Manager Application
- Qt学习笔记--窗口部件(Widget)
- Qt学习笔记4-Widget布局管理
- Qt学习笔记--窗口部件(Widget)
- Qt学习笔记--窗口部件(Widget)
- Qt学习笔记--窗口部件(Widget)
- Creating a ClickOnce application
- Creating a new application
- qt学习:Qt中Item Widget初步探索
- Qt学习—qt上下文菜单显示
- Qt学习—1
- Qt嵌套Widget
- Qt widget background
- QT窗口:widget
- Lucene之入门案例-yellowcong
- SE16和SE16N修改后台表数据方法
- webservice发布报错:javax.xml.ws.WebServiceException: Unable to create JAXBContext
- Duilib静态库的编译
- ubuntu 安装新版的qq,可支持下载文件等常用功能
- Qt学习——Creating a Qt Widget Based Application
- 十三周周总结(关于创建单链表)
- xshell终端中文乱码完全解决方法
- 协同过滤推荐算法(java原生JDK实现-附源码地址)
- css3-媒体查询flex布局
- json字符串与 js对象互相转换
- C++知识点汇总【随时更新】
- 中国朝代及首都
- Lucene之索引的创建和域选项-yellowcong