博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第四十五课、创建查找对话框------------------狄泰软件学院
阅读量:6072 次
发布时间:2019-06-20

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

一、查找对话框

1、查找对话框是应用程序中的常用部件

(1)、目标:开发一个可以在不同项目间复用的查找对话框

2、查找对话框的需求分析

(1)、可复用软件部件

(2)、查找文本框中指定字符串

(3)、能够指定查找方向

(4)、支持大小写敏感查找

(5)、附加:点击关闭按钮后隐藏

3、查找对话框的架构与设计

4、查找对话框的界面布局

 

#ifndef FINDDIALOG_H#define FINDDIALOG_H#include 
#include
#include
#include
#include
#include
#include
#include
#include
class FindDialog : public QDialog{ Q_OBJECTprotected: QGridLayout m_gLayout;//注意要把声明放在组件之前,否则程序崩溃 QGroupBox m_gBox; QHBoxLayout m_hLayout; QLabel m_findLabel; QLineEdit m_findLineEdit; QPushButton m_findButton; QCheckBox m_checkBox; QRadioButton m_forwardButton; QRadioButton m_backwardButton; QPushButton m_cancleButton;public: explicit FindDialog(QWidget *parent = 0); bool event(QEvent* e);};#endif // FINDDIALOG_H
可复用查找对话框头文件
#include "FindDialog.h"#include 
FindDialog::FindDialog(QWidget *parent) : QDialog(parent, Qt::WindowCloseButtonHint | Qt::Drawer){ setWindowTitle("查找"); m_findLabel.setText("查找内容: "); m_findButton.setEnabled(false); m_findButton.setText("查找下一个"); m_checkBox.setText("区分大小写"); m_forwardButton.setText("向上"); m_backwardButton.setChecked(true); m_backwardButton.setText("向下"); m_cancleButton.setText("取消"); m_gBox.setTitle("方向"); m_hLayout.addWidget(&m_forwardButton); m_hLayout.addWidget(&m_backwardButton); m_gBox.setLayout(&m_hLayout); m_gLayout.setSpacing(10); m_gLayout.addWidget(&m_findLabel, 0, 0); m_gLayout.addWidget(&m_findLineEdit, 0, 1); m_gLayout.addWidget(&m_findButton, 0, 2); m_gLayout.addWidget(&m_checkBox, 1, 0); m_gLayout.addWidget(&m_gBox, 1, 1); m_gLayout.addWidget(&m_cancleButton, 1, 2); setLayout(&m_gLayout);}bool FindDialog::event(QEvent* e){ if(e->type()==QEvent::Close) { hide(); return true; } return QDialog::event(e);}
可复用查找对话框实现文件

文本编辑器其它修改的地方

头文件:

UI文件:

Slots.cpp

 

二、小结

(1)、查找对话框可以用作一个可复用的软件部件进行开发

(2)、查找对话框继承自QDialog

(3)、查找对话框的界面通过布局管理器相互嵌套完成

(4)、查找对话框的设计与实现是GUI学习中的经典范例

 

转载于:https://www.cnblogs.com/gui-lin/p/6419304.html

你可能感兴趣的文章
salt state——salt的集中安装与配置(1)
查看>>
Ubuntu lnmp环境安装扩展插件mcrypt和crul
查看>>
华硕笔记本更换操作系统的一波三折的遭遇
查看>>
Jenkins 如何配置发邮箱
查看>>
VSAN API 探索第 7 部分 – VSAN 数据存储文件夹管理
查看>>
WebAPi的可视化输出模式(RabbitMQ、消息补偿相关)所有webapi似乎都缺失的一个功能...
查看>>
js练习本
查看>>
mysql的innodb中事务日志ib_logfile
查看>>
Java命令: jps
查看>>
鬼谷子
查看>>
我的友情链接
查看>>
Microsoft Visual SourceSafe OLE Automation
查看>>
android源码是不是包含联想的支持?
查看>>
iostat 命令监控磁盘IO
查看>>
java反射详解
查看>>
android无法识别adb devices解决方法
查看>>
站长常用服务器软件总结
查看>>
CSS纯图片圆角Box的实现技巧
查看>>
Maven:简介(1)
查看>>
安卓SDK 安装问题
查看>>