Qt45 写一个可复用的查找对话框界面

Qt 多窗体、复用窗口的使用 1.继承自QWidge的窗口的呈现,作为tabPage呈现,作为独立窗口呈现 2.继承自QMainWindow的窗口的呈现,作为abPage呈现,作为独立窗口呈现 阅读详情

学习自唐佐林老师Qt


在这里插入图片描述

FindDialog.h

#ifndef _FINDDIALOG_H_
#define _FINDDIALOG_H_

#include <QDialog>
#include <QGridLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QRadioButton>
#include <QCheckBox>
#include <QGroupBox>

//查找对话框
class FindDialog : public QDialog
{
    Q_OBJECT

protected:
    QGroupBox m_radioGrpBx;//容器 用于放置两个单选按钮 QRadioButton

    //网格布局管理器,水平布局管理器
    QGridLayout m_layout;
    QHBoxLayout m_hbLayout;

    QLabel m_findLbl;//查找标签
    QLineEdit m_findEdit;//查找文本输入框
    QPushButton m_findBtn;//查找按钮 查找下一个
    QPushButton m_closeBtn;//关闭按钮
    QCheckBox m_matchChkBx; //复选框
    QRadioButton m_forwardBtn;//单选按钮 向前查找
    QRadioButton m_backwardBtn;//单选按钮 向后查找

public:
    explicit FindDialog(QWidget* parent = 0);
    bool event(QEvent* evt);//重写事件处理
    
signals:
    
public slots:
    
};

#endif // _FINDDIALOG_H_

FindDialog.cpp

#include "FindDialog.h"
#include <QEvent>

/*
  QDialog(parent, Qt::WindowCloseButtonHint | Qt::Drawer)
  窗口选项1:Qt::WindowCloseButtonHin 只显示一个关闭按钮
  窗口选项2:Qt::Drawe 当前对话框 不显示左上角图标
*/
FindDialog::FindDialog(QWidget *parent) : QDialog(parent, Qt::WindowCloseButtonHint | Qt::Drawer)
{
    m_findLbl.setText("Find What:");
    m_findBtn.setText("Find Next");
    m_closeBtn.setText("Close");
    m_matchChkBx.setText("Match Case");
    m_backwardBtn.setText("Backward");
    m_forwardBtn.setText("Forward");
    m_forwardBtn.setChecked(true);//默认被选取
    m_radioGrpBx.setTitle("Direction");//m_radioGrpBx容器 放置两个单选按钮 QRadioButton,设置标题

    //添加到水平布局管理器
    m_hbLayout.addWidget(&m_forwardBtn);
    m_hbLayout.addWidget(&m_backwardBtn);

    m_radioGrpBx.setLayout(&m_hbLayout);

    m_layout.setSpacing(10);
    m_layout.addWidget(&m_findLbl, 0, 0);
    m_layout.addWidget(&m_findEdit, 0, 1);
    m_layout.addWidget(&m_findBtn, 0, 2);
    m_layout.addWidget(&m_matchChkBx, 1, 0);
    m_layout.addWidget(&m_radioGrpBx, 1, 1);
    m_layout.addWidget(&m_closeBtn, 1, 2);

    //将布局设置到查找对话框中
    setLayout(&m_layout);
    setWindowTitle("Find");//设置窗口标题
}

//重写事件处理
bool FindDialog::event(QEvent* evt)
{
    //判断有没有收到 关闭 事件
    if( evt->type() == QEvent::Close )
    {
        hide();//隐藏当前对话框

        return true; //返回true 代表当前事件已经被处理了
    }

    return QDialog::event(evt);//其他事件 直接交给父类事件处理函数
}

//创建智能指针 Qt中的智能指针,指向查找对话框
QSharedPointer m_pFindDlg;

//初始化智能指针
m_pFindDlg(new FindDialog(this))

//打开查找对话框
m_pFindDlg->show();

在这里插入图片描述

《Qt图形界面编程入门》课后习题全解 QT qt图形界面编程入门 目录说明 experiment 实验一 程序1.编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。 程序2.定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编写应用程序,定义时间对象,设置时间, 输出该对象提供的时间。 程序3.用new建立一个动态一维数组,并初始化int[10]={1,2,3... 阅读详情

相关推荐

Qt自定义界面把OpenGL绘制的图形显示在QT的ui界面上

编译环境:Qt Creator 5.4.0_mingw 最近利用QT做一个上位机界面,想用OpenGL将STL文件还原成三维模型,并将模型显示出来,那么问题来了,最简单的显示就直接创建一个窗口显示模型,根本就 没有用到QT的ui界面。 现在的问题是,想把OpenGL绘制的图形显示在用户自定义的ui界面上,上网搜了好多资料最终才知道是一个窗口部件提升的问题。 1、创建一个基类是QMainWindow项目,类名定义为mainwindow,同时创建界面 2、在pro文件中添加语句''QT + = co

dream it possible 3768

Qt一些中的可复用模块

QT初学者,个人积累收集和整理的一些可复用的模块。博文备份,仅供参考,侵删。 同时感谢各位大佬分享的开发经验,愿与君同行,无限进步。

Zcgy2018的博客 1060

Qt自定义界面类并提升(提升的窗口部件),把OpenGL绘制的图形显示在QT的ui界面上

编译环境:Qt Creator 5.4.0_mingw 最近利用QT做一个上位机界面,想用OpenGL将STL文件还原成三维模型,并将模型显示出来,那么问题来了,最简单的显示就直接创建一个窗口显示模型,根本就 没有用到QT的ui界面。 现在的问题是,想把OpenGL绘制的图形显示在用户自定义的ui界面上,上网搜了好多资料最终才知道是一个窗口部件提升的问题。 1、创建一个基类是QMainWin

努力努力... 1万+

自定义控件之创建可以复用的组合控件(三)

今天我们打算学习下另外一种自定义控件,就是创建可重复使用的组合控件,那么问题来了: - **什么是可重复使用?** 就是在应用中,可以在多个地方共同使用一套代码。这样不仅能减少我们的工作量,而且还能保持应用风格的一致,这种应用最多最直接的体现就是统一风格样式的标题栏。 - **那什么又是组合控件呢?** 组合控件,顾名思义就是多个控件组合在一起,相互协作共同完成某些特定的功能。

管满满 6808

C++QT入门_c++ qt

​ Qt 是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正的组件编程。常见GUI:QT:支持多平台开发;支持css;面向对象特性体现突出;发展趋势良好。MFC:只能在windows开发;运行程序效率高;库的安全性好;public slots: // 添加槽函数private:// 重新更新// 设置 完成之后可以拉伸。

2401_87555420的博客 1749

Qt 之界面换肤

常用的软件基本都有换肤功能,例如:QQ、360、迅雷等。换肤其实很简单,并没有想象中那么难,利用前面分享过的QSS系列文章,我们完全可以实现各种样式的定制!

青春不老,奋斗不止! 3万+

QT窗口内嵌子页面并且多个子页面可以进行切换

QT窗口内嵌子页面并且多个子页面可以进行切换 在练习使用QT制作学生管理系统的时候,就遇到了这个问题,如何使页面像浏览器一样切换自如是我遇到的一个问题。 就大概是类似于上面的操作,通过点击左边的treewidget内的不同的信息,右边的区域会展示与之相关的页面。 这个相关方面的我也有在网站寻找,但是其实说的感觉并没有很具体,以下的方式是我结合网上寻找的答案自己试出来的 首先先创建两个界面文件,如图: 其次,看一下我的例子: dialog.h #ifndef DIALOG_H #define DIALO

木辛木又 2万+

自己写的QT移动窗体框架(可复用类)

自己写的QT中移动窗体框架,可以复用。 QT4.5.3+vc6编译通过

Qt多页面时的控件复用——以QStackedWidget为例

在Qt设计多个切换页面时,经常会出现多个页面用到相同的控件,此时就会涉及到控件复用。尤其是当一个复杂子界面需要在多个页面反复出现时,我们往往不希望复制多份(那样比较冗余),此时就需要研究如何让控件或者子界面随着页面的切换反复利用。下面以QStackedWidget中同一日历对象的反复调用为例,介绍如何操作。

weixin_49300040的博客 2997

基于opencv-ANN的水果识别模型训练

本文通过opencv-ann-mlp训练模型,实现对五种水果进行分类识别。本文详细介绍该项目的各个过程,包括数据准备、预处理、样本读取、训练数据集制作、训练标签制作、模型参数设置、模型训练,模型测试验证等,总结该过程需要注意的事项。

qq_15985873的博客 3974

告别手动操作!用Python脚本批量处理Siemens NX零件文件(导入/导出/移除参数)

本文详细介绍了如何利用Python脚本实现Siemens NX零件文件的批量处理,包括导入、导出和移除参数等操作。通过NX Open API和Python UF接口,工业设计师可以大幅提升工作效率,告别繁琐的手动操作。文章提供了完整的实战指南,涵盖环境配置、核心功能实现以及性能优化技巧,特别适合需要进行Siemens-NXUG二次开发的工程师参考。

weixin_28222493的博客 261

用QT写一个对话框

打开QT creater创建取名去findDialog的项目,这个项目要基于QDialog。直接上FindDialog.h的头文件。 1 #ifndef FINDDIALOG_H 2 #define FINDDIALOG_H 3 4 #include<QDialog> 5 #include<QtGui> 6 class QCheckBox; ...

weixin_30268071的博客 153

【影像组学入门百问】1#---#3

理论上讲三大主流平台Windows, Linux和MacOS均可进行影像组学研究。根据笔者实际经验,如果内存不足可能导致软件罢工,其余显示、GPU等均非必要。显示:最小分辨率为1024×768(推荐为1280×1024或更好)。Slicer中的许多计算都是多线程的,并且将受益于多核,多CPU配置。计算机需要足够的内存和图形功能将原始数据和处理结果保存在其内存中。如涉及深度学习等方法的研究需根据实际需求配置电脑,无法一概而论。接口设备:推荐使用带滚轮的三键鼠标。内存:超过4GB(推荐8G以上)。

weixin_38594676的博客 1484

10.Qt模态对话框与非模态对话框

1、简介 模态对话款:弹出后,不可以对其他的窗口进行操作 非模态对话框:可以对其他窗口进行操作 2、创建代码 #include "mainwindow.h" #include "ui_mainwindow.h" #include <QDialog> #include <QWidget> MainWindow::MainWindow(QWidget *parent) : ...

KJ_Study的博客 300

Cadence公司的数字IC设计工具:综合工具(Genus)——(2)

介绍Cadence公司的数字IC设计工具Genus

qq_42922513的博客 1945

COMSOL两相流(相场法)

COMSOL是一款功能非常强大的多物理场仿真软件,拥有可视化和后处理工具,可方便有效的展示您的仿真效果,具有灵活、高效、友好的特点,软件能够为用户提供各类工程问题的解决方案,从而帮助广大研究和工程人员能够在科研上取得新突破。 COMSOL可以实现声学、传热、流体力学、结构力学等方面的模拟仿真,具体模块如下图所示。 COMSOL软件设置流程 定义需要求解的问题类型:针对一个需要仿真的问题,需要先对问题进行分析;分析该问题用到哪些物理场,什么样的几何模型,以及如何设置研究等。该步骤可以使用COMSOL中的

weixin_47139559的博客 1万+

QT45:分子演化中的关系凝结与临界稳态 协同本体论的深度解读

万亿个未能稳定成形的随机序列,并非演化中的“失败者”,而是QT45得以涌现的潜在前提——它们以消散的方式,参与了每一次临界破缺前的张力积累。但从本体论层面追问,QT45的形成提出了更基础的问题:一个具备功能秩序的分子实体,如何从纯粹随机的关系网络中涌现?这里的“随机”不只是认识论意义上的未知,而是本体论层面的微观动力——不可消除的底层扰动,是推动演化的根本来源。QT45的内禀性记忆中,埋藏着它们的构型痕迹——那些曾经尝试、却未能稳定的组合,通过共晶冰的浓缩与重组,以潜在形式参与每一次新的凝结。

2501_92196085的博客 690

R语言使用rms包的psm函数拟合参数生存模型(parametric survival model)、并可视化列线图(诺模图、nomogram)

R语言使用rms包的psm函数拟合参数生存模型(parametric survival model)、并可视化列线图(诺模图、nomogram)

statistics+insight+vista+power 903

qt漂亮的黑色界面

#include <QtWidgets/QApplication> #include <QStyleFactory> int main(int argc, char *argv[]) { QApplication a(argc, argv); /* 设置全局风格 */ //QApplication::setStyle(QStyleFactory::create("Fusion")); //QApplication::setStyle(QStyleFactory..

全粘工程师 4858

【计算机视觉】语义分割实战:FCN、U-Net与DeepLab系列详解

语义分割实战:FCN、U-Net与DeepLab系列详解,人工智能、大模型、AI深度学习在计算机视觉领域取得了令人瞩目的进展,语义分割作为计算机视觉领域的关键任务,旨在将图像中的每个像素都分配到特定的类别中,实现对图像内容的精细理解。与目标检测关注物体的类别与位置不同,语义分割能够对场景中的所有元素进行像素级别的分类,这在自动驾驶、医学图像分析、遥感图像解译等众多领域都有着至关重要的应用。例如,在自动驾驶中,准确的语义分割可以帮助车辆识别道路、行人、交通标志等,为安全行驶提供决策依据;在医学图像分析中……

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 9万+

8、音频运行时系统的架构设计

本文深入探讨了音频运行时系统的分层设计及其优势,包括逻辑层和物理层的功能划分。通过分层设计,开发者可以更轻松地管理和优化音频资源,确保其在不同平台上的高效运行。文章还介绍了平台适配与优化、错误处理与调试以及未来发展方向等内容,为开发者提供了宝贵的参考和指导。

juice的博客 463

【免费下载】 QT样式表合集 - 45款精美主题一键切换

QT样式表合集 - 45款精美主题一键切换 【下载地址】QT样式表合集-45款精美主题一键切换 QT样式表合集 - 45款精美主题一键切换---**项目简介**欢迎来到“QT样式表45套”资源库!本项目精心搜集并整理了45套独特的QT样式表(QSS),旨在帮助QT开发者和爱好者轻松美化他们的应用程序界面 ...

gitblog_09729的博客 2054

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

如何创建一个Qt的编辑界面

1.首先打开Qt creator,点击右上角的File,弹出级联窗口,选择第一个New File or Project。 图1.1 2.点击New File or Project(或者打开Qt creator之后,直接Ctrl+N),出现如下图(图1.2)所示的对话框。 图1.2 3.滚动鼠标,在Projects中选择Empty Qt4 Project(或者Qt4 Gui Application,后面会讲到选择两者的区别) 图1.3 4.给所建立的工程命名以及选择存储位置。(存储位置

weixin_45688108的博客 2406

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Qt界面开发(各种控件以及图表)

Qt界面开发(各种控件以及图表) 1.Qt简洁窗体 源代码链接:点击打开链接 2.QT漂亮界面   源代码链接:点击打开链接 3.音乐播放器界面 源代码链接:点击打开链接 4.六宫格界面 源代码链接:点击打开链接 5.漂亮通用界面 源代码链接:点击打开链接 6.净化设备管理 源代码链接:点击打开链接 7.树形界面通用图 源代码链接:点击打开...

liujiayu2的专栏 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

QT多界面之间数据传输

Qt两个界面之间互相通信

知来者逆的博客 1万+
上一篇: Qt44 发送自定义事件(二)
下一篇: Qt46 可复用查找对话框实现
Ma浩然
博客等级 码龄9年 1万+粉丝 462原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ma浩然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值