博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt实例1 - 查找框(1)组装零件
阅读量:5064 次
发布时间:2019-06-12

本文共 2170 字,大约阅读时间需要 7 分钟。

前言

学一个东西必须得去实践,而且如果实践出来的东西还有趣味性的话,会大大增加学习的动力。我刚接触Qt不久,准备在自学的过程中把自己写的实例一一记录下来。

好了,不扯了,今天要做一个查找框,就是大家用的编辑器里的那种最普通的查找框,先看下效果图大概是啥样的:

 

好,看完了我们开始做。至于Qt的安装这里就不赘述了,度娘会告诉你,而且也不算复杂。

1.建立项目

填写项目位置,随便起个都行。这里就叫dialog吧。下一步,下一步。来到编辑类信息的时候,修改基类为QDialog,类名为FindDialog,把创建界面那个勾去掉,下一步,完成。打开Qt Creator,文件-新建,选择Qt控件项目-Qt Gui应用,确定。

这时候我们可以看下里面都有什么文件:

有个.pro文件,还有个.h头文件,还有两个cpp源文件。

打开.pro文件你可以看到里面保存的是一些配置信息。

dialog.cpp里面是类的声明。

main.cpp是程序的主入口,他把dialog.h头文件包含了进来,然后实例化,显示,然后从那句a.exec()开始进入事件循环。

 

2.添加组件

好了,我们建好相应的文件现在开始写代码吧,你不会是以为现在就大功告成了吧?哈哈。。。你可以点击那个绿色的播放按钮运行看看,可能是类似这个样子的(不同的操作系统样子不同):

里面什么东西都没有,那。。。都要写什么呢?想下查找框都有什么部件?有文字,有文本框,有按钮,差不多就这几个。

修改dialog.h文件:

#ifndef FINDDIALOG_H#define FINDDIALOG_H#include 
//先声明需要用到的组件,告诉编译器这些类是存在的,而不必关注太多细节。class QLabel;//文字class QLineEdit;//文本框class QPushButton;//按钮class QHBoxLayout;//用于布局的层class FindDialog : public QDialog{ Q_OBJECT public: FindDialog(QWidget *parent = 0);//构造函数 ~FindDialog();//析构函数private:   //前置声明一些部件 QLabel *searchLabel; QLineEdit *searchLineEdit; QPushButton *searchButton; QHBoxLayout *layout; void init();};#endif // FINDDIALOG_H

 

dialog.cpp:

#include "finddialog.h" //把需要用到的组件加进来 #include 
#include
#include
#include
FindDialog::FindDialog(QWidget *parent) : QDialog(parent)//构造函数{ init();//初始化}FindDialog::~FindDialog()//析构函数{ }void FindDialog::init(){ //一个文本标签,内容用tr包起来是为了方便国际化 searchLabel = new QLabel(tr("&Find what?")); //一个文本框 searchLineEdit = new QLineEdit(); //设置伙伴,当使用searchLabel的快捷键时,会自动focus到searchLineEdit上 searchLabel->setBuddy(searchLineEdit); //搜索按钮 searchButton = new QPushButton(tr("&Search")); //new一个水平层,把组件都加进去 layout = new QHBoxLayout; layout->addWidget(searchLabel); layout->addWidget(searchLineEdit); layout->addWidget(searchButton); //设置主layout为layout setLayout(layout); //到此为止我们把部件都加进去了}

 

main.cpp不用改了,Qt Creator已经为我们写好了。此时我们点击绿色播放按钮。就可以看到先前的效果图啦。:)

怎么样?用Qt写控件很简单吧?不过点击搜索按钮还没有任何反应,只有关闭按钮才起反应,而且也没有内容可搜索,还有,那个tr怎么实现国际化?那么下一节我们就去实现这些功能吧!

转载于:https://www.cnblogs.com/justlikeheaven/archive/2013/01/09/Qt-example-FindDialog.html

你可能感兴趣的文章
MySql 中锁的定义
查看>>
《Beginning C# Objcets》学习笔记
查看>>
Verilog代码风格
查看>>
【UVA1638】杆子的排列
查看>>
二叉树中的节点删除-----按照最底层最右边的节点收缩
查看>>
java常用类-----String类的源码分析、可变和不可变序列
查看>>
多重for循环如何提速
查看>>
句子相似度比较的归一化
查看>>
poj 3041
查看>>
批量删除64
查看>>
乱谈数学--我理解的函数极限运算
查看>>
关于博主&&联系博主
查看>>
ANF
查看>>
TZOJ 1321 Girls and Boys(匈牙利最大独立集)
查看>>
6月24日AppCan移动开发者大会礼品清单遭泄露
查看>>
java——HashMap的实现原理,自己实现简单的HashMap
查看>>
java servlet上传centos服务器
查看>>
前端读者 | 由setTimeout引发的JS引擎运行机制的研究
查看>>
全排列算法
查看>>
菜鸟涂鸦作品展_No.4
查看>>