Qt入门_设计find对话框(qt怎么设置对话框大小固定)
cac55 2024-09-19 16:59 24 浏览 0 评论
查找对话框是一个很常见的功能,这里通过子类化QDialog来实现该功能,后面的学习会重用这部分代码,其界面如下:
一、声明FindDialog
finddialog.h
代码解析:
- 因为windows系统不区别大小写,强烈建议Qt项目的所有源码的文件名都用小写;
- 不理解信号槽的程序员不是好的C++ Qt程序员;
- Q_OBJECT是什么?
* 是一个宏,本身没有意义,定义了信号/槽函数的类里都需要添加该宏;
* Qt通过在头文件里搜索“Q_OBJECT”来判断哪些文件需要被moc(Qt Meta Object Compiler)处理,以实现信号槽机制:
$ /opt/Qt5.9.8/5.9.8/gcc_64/bin/moc XXX -o moc_finddialog.cpp
- QDialog的父类是QWidget;
- signals是什么?
* signals也是一个宏:define signals public __attribute__((annotate("qt_signal")))
* 信号函数只需声明无需实现,findNext()和findPre()只需要声明即可;
* 信号函数只负责发送信号,不需指定接收者,所以信号函数和槽函数两者的代码独立;
* Qt的控件本身已经提供了一些信号;
- private slots是什么?
* 槽函数就是一个普通函数,只接收不管通信;
* 槽函数需要自己实现,findClicked()和enableFindButton()会在finddialog.cpp里实现;
* 槽函数信号函数的参数列表要一致;
* 槽函数和信号函数通过connect()来绑定;
* 当信号函数被调用时,信号会被写入队列,当主线程从队列中获取到信号时,对应的槽函数会被调用;
* 槽函数不能在外部线程中访问,因为可能会和主线程冲突;
* Qt的控件本身已经提供了一些槽;
二、实现FindDialog
ui代码:
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。
点击这里找小助理0元领取:加微信领取资料
代码解析:
- Qt由数个模块组成,每个模块构成一个类库,重要的模块包括:
* QtCore、QtGui、QtNetwork、QtWidgets等,头文件<QtWidgets>包括了程序里用到的QLable、QLineEit等类的定义;
* QtCore,提供核心的非 GUI 功能,所有模块都需要这个模块;
* QtGui,提供 GUI 程序的基本功能,包括与窗口系统的集成、事件处理、OpenGL 和 OpenGL ES 集成、2D 图像、字体、拖放等;
* QtNetwork,提供跨平台的网络功能;
* QtWidgets,使用 C++ 扩展的 Qt Gui 模块,提供了一些界面组件,比如按钮、单选框等。
- tr()函数用于标记字符串可翻译成其他语言,QObect对象和包括Q_OBJECT宏的子类都声明了该函数;
- "find &what:" 的&用于表明支持快捷键alt+w聚焦;
- label->setBuddy(lineEdit):当按下label的快捷键时lineEdit会成为焦点;
- 控件和布局:topLeft区域一个layout、left区域一个layout、right区域一个layout、main区域一个layout:
- addStretch(),strech相当于一个小弹簧,用它来占据空白区域;
绑定信号槽:
- 信号和槽通过QObject::connect()绑定;
- textChanged(const QString &)、clicked(),都是QDialog自带的信号,close()则为自带的槽;
槽实现:
- emit,一个空的宏,只是为了提升代码的可读性。
运行效果:
$ ./build.sh
$ ./001_find
到此,查找功能的对话框就设计完毕了。这里我们纯粹通过编写C++源码来开发该对话框,我们还有另外一个选择:使用可视化的Qt Desinger。通过设计器设计的界面的操作很难通过文字来说明,这一块只能看书学习了,参考:
《C++ GUI Qt4 编程》
文章链接:
https://mp.weixin.qq.com/s/Dguuo-iiSa5d3Q8mX569zQ
转载自:老吴嵌入式
文章链接:Qt入门_设计find对话框
相关推荐
- unetbootin中文版:能够将Linux系统装进U盘的U盘启动盘制作工具
-
unetbootin中文版是一款能够将Linux操作系统装进U盘或移动硬盘的U盘启动盘制作工具,制作好的U盘启动盘能够用于电脑的维护和系统还原等操作,使用起来非常地不错。该软件不会基于操作系统使用特定...
- 实用之选,实用之改:DELL 戴尔 灵越14CR-4528B 小改作业
-
昨天发布了一篇三脚架,今天有时间也写写早就准备写的DELL戴尔灵越14CR-4528B作业吧。话说上个笔记本还是2006年底买的华硕A6JE,电脑挺不错的,在家上上网也够用了,就是转轴设计缺陷,容...
- 教你如何制作一个启动U盘,从此电脑不用找专人做系统
-
在电脑使用中,老是遇到卡顿,蓝屏,重启等很多故障,大多都是因为自己日常使用习惯而造成的,很多用户在下载软件的时候不知不觉中都被安装许多乱七八糟的软件,当电脑乱七八糟的东西过多的时候我们就重新来装一个系...
- 8、Deepin操作系统启动盘(系统盘)制作
-
1、在Deepin官网https://www.deepin.org/zh/download/下载原版Deepin操作系统2、同时在Deepin官网https://www.deepin.org/zh/d...
- 电脑死机怎么办,电脑如何使用U盘重装系统
-
电脑死机是我们最常遇到的系统故障,遇到死机时通常重启就可以解决,不过系统损坏引起的死机就只能重装系统,那么电脑死机如何重装系统呢?下面来看看电脑死机怎么办如何使用U盘重装系统_小白一键重装系统官网。 ...
- bootmgr is compressed无法启动系统
-
bootmgriscompressedPressCtrlAltDeltorestart,电脑启动后无法正常开机出现了这样的字样,就是说明你的C盘驱动被压缩解决方法:1、使用系统光盘或者...
- 新手教程!如何分辨BIOS启动列表(菜单)中的各种启动项
-
在BIOS启动菜单中识别各类启动项,是新手安装系统或调整启动顺序的必备技能。下面用最直观的方式,为你梳理常见启动项及其含义,帮助你快速上手:一、传统存储设备启动项1.Floppy(软盘驱动器)对应...
- 带回家的MINI客厅电脑,自学成才,分享U盘装系统教程
-
刚好老家新装修了房子,客厅买了个大电视,本来是想在客厅弄台主机,接电视玩,大屏幕玩的才爽,但是台式机箱太占地方了。网上逛了一圈,发现有专门的客厅电脑,就搞了一个,外形不错,放客厅很有档次,主要是主机太...
- 电脑基础知识:BIOS简介及其与Windows操作系统的关系
-
什么是BIOS?BIOS,全称BasicInputOutputSystem,即“基本输入输出系统”,是一段固化在电脑主板芯片上的底层固件程序。它类似于一款极简化的操作系统,负责电脑开机时的硬件初...
- win 7 系统注册表文件丢失或损坏,求不重做系统的解决办法!
-
粉丝问题解答:win7系统注册表文件丢失或损坏,求不重做系统的解决办法!解决方法:你只需要有启动盘即可,不需要其他的。之所以要求启动盘,是因为下面要对系统文件进行还原覆盖,所以不能用原系统启动。用...
- UEFI怎么装Win7 小编呕血解难点!
-
自从广开言路之后,小编就被你们害苦了,这不,一条评论又让小编彻夜难眠。另外某些小伙伴坐不上沙发后提出要上墙的需求,其实呢只要大家提出的问题具有普遍性、有难度、而且适合小编做微信内容的话,都有机会将你们...
- 固态攻坚战——ASUS 华硕k45v换固态、拆机清灰教程
-
作者:蘑菇爱上我现在固态白菜价固态对于电脑体验的提升还是很大的对于固态存储芯片的问题没什么好说的有钱mlc,没钱tlc,不需要考虑什么寿命的问题,我用了一年多的m600,写入才3TB品牌很重要,主控...
- MBR启动报错?Win10不重装一样能好!
-
Win10一遇到启动故障,很多小伙伴可能就会抓瞎,这可怎么弄,我不会修复啊!其实大可不必惊慌,就像这种最常见的Winload启动错误,多半都是MBR分区表丢失造成的(UEFI分区模式的几乎没有这种故障...
- 从零开始:硬盘手动装系统全攻略
-
手动安装操作系统是计算机技术必备的基本技能。对于初学者来说,可能会感到有些挑战。但通过掌握硬盘手动装系统方法,你可以亲身体验整个安装过程,进而更好地理解操作系统的工作原理。本文将详细介绍硬盘手动装系统...
- 电脑开机后显示File:BCD错误0xc000000f
-
WIN7\WIN8\WIN101、一个win864位PE。这个64位PE的相关文件,路径在boot\BOOT.WIM实机测试,开机后显示File:\EFI\Microsoft\Boot\BCD,...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)