Qt小程序(三)-继承Qt窗口部件创建自定义部件

QT小程序--天气预报桌面小程序(如何在主窗口调用子窗口,并实现子窗口调用主窗口的控件) 主要利用一个小小的demo实现跨窗口调用控件 阅读详情

目录

前言

人都是有两面性的,当你有价值的时候(入了别人眼的时候),就会得到不同的待遇!所以,没有入别人眼的时候,自然就不会被认真对待!努力,学习,人真的可以选择自己的层次!

制作自定义的窗口部件-继承Qt已有的窗口部件

  • 在项目上右键添加新文件,然后建立里一个hexspinbox类,就会自动在头文件目录和源文件目录生成hexspinbox.cpp和hexspinbox.h。
    1

Qt代码

#include "dialog.h"
#include <QApplication>
#include "hexspinbox.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
//    Dialog w;
//    w.show();
    HexSpinBox  h;
    h.show();

    return a.exec();
}
  • hexspinbox.h
#ifndef HEXSPINBOX_H
#define HEXSPINBOX_H

#include <QSpinBox>
class QRegExpValidator;

class HexSpinBox : public QSpinBox
{
public:
    HexSpinBox(QWidget* parent = 0);
protected:
    QValidator::State validate(QString &input, int &pos) const;
    int valueFromText(const QString &text) const;
    QString textFromValue(int val) const;
private:
    QRegExpValidator *validator;
};

#endif // HEXSPINBOX_H
  • hexspinbox.cpp
#include "hexspinbox.h"
#include <QtWidgets>

HexSpinBox::HexSpinBox(QWidget* parent):QSpinBox(parent)
{
    setRange(0, 255);
    validator = new QRegExpValidator(QRegExp("[0-9A-Fa-f]{1,8}"), this);

}

// when we input a value, validate() will be called automatically
// To decide whether the value is good
QValidator::State HexSpinBox::validate(QString &input, int &pos) const
{
    return validator->validate(input, pos);
}

// when the value is going to be show, we should transform it
// into hex, also you can make it Upper
QString HexSpinBox::textFromValue(int value) const
{
    return QString::number(value, 16).toUpper();
}

// Qt will save the value as Int. so when we input a hex
// Qt will call valueFromText to transform hex to Int
int HexSpinBox::valueFromText(const QString &text) const
{
    bool ok;
    return text.toInt(&ok, 16);
}

总结

这个程序使用了C++的继承,感觉学习Qt就是学习别人是怎么设计类的,设计了那些方法和虚函数,然后使用别人的接口实现自己的功能。感谢提供别人录制的视频,提供了代码!永远学习,总会有不一样的那一天!

Qt桌面应用开发 阅读详情

相关推荐

QT之信号和槽机制详解

QT之信号和槽机制详解 一、什么是信号和槽机制(signal&amp;slots) QT提供了信号和槽机制用于完成接界面操作的响应,是完成两个任意的QT对象之间的通信机制; 通俗来讲,就是就是一个窗口部件的变化情况要通知给另一个窗口部件,这时我们就需要槽函数,一个窗口部件发送信号,另一个窗口部件接收信号并进行相应的操作,从而实现两个窗口部件的通信。其中,信号会在某个特定的动作下被触发,槽...

hickey_t的博客 5179

Qt界面UI文件的使用与界面继承问题

QT的UI如何加入到程序中来?xxx.ui文件是一个xml文件,描述了ui属性,包括ui路径,名称,尺寸等信息,这个文件可由ui设计工具qtdesigner生成;但是要想在程序中使用ui,需要通过uic.exe和xxx.ui生成一个ui_xxx.h文件。cmd中cd到xxx.ui所在的路径,输入uic.exexxx.ui-oui_xxx.h。可以使用不同的ui文件进行界面代码的继承,然后将ui.setupUI(this)写到一个虚函数中去。...

kupePoem的专栏 5764

Qt界面编程(三)—— 父子关系、对象树、信号和槽(自定义信号和槽、Qt5与Qt4的写法)

Qt框架默认提供的标准信号和槽不足以完成我们日常应用开发的需求,比如说点击某个按钮让另一个按钮的文字改变,这时候标准信号和槽就没有提供这样的函数。但是Qt信号和槽机制提供了允许我们自己设计自己的信号和槽。声明在类的signals域下没有返回值,void类型的函数只有函数声明,没有定义可以有参数,可以重载通过emit关键字来触发信号,形式:emit object->sig(参数);

此心光明事上练的博客 1695

qt的窗口继承

QWidget是QDialog和QMainWindow的基类。 QMainWindow是带有菜单栏和工具栏的主窗口类。 QDialog是各种对话框的基类。 而QWidge继承自QObject和QPaintDevice类 QObject是支持QT对象模型的基类(Qt Object Model) QPaintDevice是所有可以绘制的对象的基类。

mengtianwxs的专栏 1808

利用Qt来实现一个时钟小程序

要实现一个时钟小程序,我们首先想到需要以下的几个东西: 1. 时针 2.时针刻度 3.分针 4.分针刻度 5.秒针 要实现这个可以继承自QWidget,并在其中的paintEvent(QPaintEvent *event)Q_DECL_OVERLOAD;重载函数中来实现 具体代码如下: #ifndef ANALOGCLOCK_H #define AN

南的专栏 4344

abaqus2matlab的安装与使用:如何用matlab提取abaqus的odb结果

官网abaqus2matlab官网地址matlab社区地址matlab社区地址在这里可以看到.m文件的源码论文:Abaqus2Matlab: A suitable tool for finite element post-processingabaqus2matlab可以处理.inp、.fil、.odb三种类型的文件。.inp文件:处理功能就在于只是单纯的输出inp文件,由于我自己写了自己的函数,不需要用到这个功能。

qianxin1234的博客 2019

Qt应用开发(基础篇)——框架类 QFrame

QFrame继承于QWidget,被QLCDNumber、QToolBox、QLabel、QListView等部件继承,是一个拥有矩形框架的基类。QFrame可以直接创建成一个没有内容的的矩形框架,框架的样式由边框厚度框架形状(QFrame::Shape)和阴影样式(QFrame::Shadow)决定下图是官网给出的组合样式图。

波塞冬的博客 2516

Sigmastar平台WDR调试实战:从参数解析到鬼影消除的完整指南

本文提供了Sigmastar平台宽动态(WDR)技术的实战调试指南。针对逆光、运动场景下的核心痛点,系统性地解析了从多曝光采集、HDR融合到色调映射的完整管线,并重点阐述了如何通过调整曝光比、运动阈值与调整曲线等关键参数,有效消除运动鬼影、平衡暗部噪声与细节,最终实现清晰稳定的图像效果。

Jerry的专栏 927

【Qt】通过继承ui界面类的方式加载.ui转化的.h头文件显示窗体

将QtDesigner生成的.ui文件转化为.h头文件,然后自定义class继承父控件类,显示窗体。 step-1:创建项目配置文件Test.pro; step-2:创建自定义的头文件 step-3:创建自定义的源文件 step-4:创建main.cpp;

jn10010537的博客 2344

经典脉冲激光测距原理&雷达方程

脉冲激光测距机的工作过程如下:首先用瞄准光学系统瞄准目标,然后接通激光电源,储能电容器充电,产生触发闪光灯的触发脉冲,闪光灯点亮,激光器受激辐射,从输出反射镜发射出一个前沿陡峭、峰值功率高的激光脉冲,通过发射光学系统压缩光束发射角后射向目标。通过计算激光发射功率经介质传输的衰减,目标表面截获和反射的光功率,到达接收视场的光功率,以及接收光学系统接收到的光功率,就可以得到到达光电探测器的光功率,即接收功率。⑤光東路程上的折射率变化;),测量光脉冲到达目标并由目标返回到接收机的时间,由此计算出目标的距离。

weixin_46153372的博客 2526

LM1875官方电路图元件作用解释说明以及电路调校

R1是为C1提供充放电回路用的电阻,这是老外工作严谨的地方,其实接好电位器之后直流通路就已经存在了,这个加上只能防止最恶劣情况时也能把C1的电能放掉,尽管只有一点点 C1是输入电容,主要作用是隔离前后级的直流信号,但是这个电容对音质的影响很大,可以换用不同的品牌和容量来部分修改音质和音色 R2提供LM1875正输入端的直流电平控制点,接地就表示在理想情况下Lm1875的输出直流电平是0V;还有一个作用就是确定放大器的交流输入阻抗为电阻值。 R3、R4是反馈电阻,这个电路的放大倍数为R4/R3+1=21倍。.

m0_50862404的博客 1万+

【qt信号槽-2】Qt中窗体继承,槽响应多次执行的解决

按上面方法继承窗体后,控件的槽会响应两次。因为制作父窗体的时候,已经画了界面,实现并绑定了控件的槽函数。子窗体再new的时候又绑定一遍。

大橘子的博客 1056

在ROS中使用行为树

在ROS中使用行为树 我提供的工程示例文件: demo链接 文章目录在ROS中使用行为树0、 学习本教程的前提1、 behaviorTree 库安装(ROS使用下的安装方式)2、 处理 behaviortree 库并准备好 service 和 ros action2.1 对ROS 的 service 和 action 进行封装,使其在 behaviortree 上使用更加方便。2.2 创建一个 service 和一个 action2.3 创建与决策树相关的数据类型2.4 修改`package.xml`文件2

qq_37416258的博客 6376

Qt小程序(四)-添加窗口部件到Qt Designer

目录目录 前言 提升法 提升过程 总结 插件法 总结前言感谢有时间学习的每一天!提升法提升过程这里使用Qt小程序(三)来学习提升法。 - 点击项目名,如6_test,右键选择添加新文件,然后在弹出的界面中选择Qt,然后选择Qt设计师界面类。如图: - 选择choose,然后在选择界面模板下选择Widget(也就是最普通的界面),然后点击下一步,直到finish。然后就会在项目中生成form.

simon曦的博客 2672

从零构建锂电池主动均衡系统:Simulink仿真中的Buck-Boost拓扑实战指南

本文详细介绍了如何在Simulink中从零构建基于Buck-Boost拓扑的锂电池主动均衡系统。通过仿真环境搭建、参数优化、控制策略设计和性能评估,为工程师提供了完整的实战指南,帮助快速验证和优化均衡算法,提升电池组一致性与寿命。

gitlab7runner的博客 897

【SLAM论文笔记】SplaTAM论文小结

参考方法有ORB-SLAM3、Point-SLAM、NICE-SLAM、Kintinuous、ElasticFusion,测试数据集有ScanNet++、Replica、TUM-RGBD、Orig-ScanNet,SpaTAM并未在全部对比均为第一,表现最佳的是在ScanNet++、Replica,ScanNet++上SplaTAM方法位姿精度比第2名ORB-SLAM3高两个数量级,在TUM。上无稀疏SLAM结果,NICE-SLAM与Point-SLAM占优。SplaTAM基本做到了SOTA。

持之以恒 1011

Qt 制作小程序登录系统(超详细)

首先 简要介绍此 登陆系统的基本作用。登录系统效果展示下面这就是 登录系统的主界面了。主要通过账户,密码来登录系统app.关于效果展示的各个功能,都会 详细为大家讲解。如果想要源码或者不懂的可以私信我。

wuyiyu_的博客 4992

AI技术在电商中的实际应用

人工智能、电商、推荐系统、个性化、机器学习、深度学习 1. 背景介绍 电子商务行业近年来发展迅速,用户数量不断增长,商品种类日益丰富。然而,随着市场竞争的加剧,电商平台面临着如何提升用户体验、提高转化率、挖掘潜在商机等一系列挑战。人工智能(AI)技术作为一种新兴技术,凭借其强大的数

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 1740

Qt第二小程序

这是QT新手容易遇见的问题,“class QApplication has no member named setMainWidget”。这是qt3程序里的成员函数,而你可能是用了qt4编译,qt4中没有setMainWidget成员。 以下是一个QT3程序 #include #include int main( int argc, char* argv[]) {    QAppl

etwdone的专栏 1186

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

QT父窗口

QT一个窗体就是一个控件,如小程序我们再加入一个label他将会是两个窗体. 这样显然不适合管理,所以需要父窗口. 父窗口的意义就是统一管理各个控件,使控件停靠在父窗口上,并且可以一起移动关闭等等. 一般父窗口有三个 QWidget 他是一个老大(不知道选什么的时候选择) QMainWindow 主窗口,继承于QWidget(功能很多时选择) QDialog 对话框,继承于QWidget(功能较少时选择) 这个东西的选择没有标准的规定. 设置窗口位置...

szplzx1314的博客 2424

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

最适合练手的第一个Qt小程序,所有代码均可复制

文章目录前言一、最适合新手的第一个Qt小程序1.1 按钮的创建1.2 对象模型(对象树)二、Qt窗口坐标体系三、信号和槽机制3.1 系统自带的信号和槽3.2 自定义信号和槽3.3 信号槽的扩展3.4 Qt4版本的信号和槽写法3.5 Lambda表达式 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、最适合新手的第一个Qt小程序 1.

黑马程序员官方博客 2538

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【Qt】第一个Qt小程序以及对象模型,Qt窗口坐标体系

【Qt】第一个Qt小程序以及对象模型,Qt窗口坐标体系按钮的创建对象模型(对象树)Qt窗口坐标体系 按钮的创建 在Qt程序中,最常用的控件之一就是按钮了,首先我们来看下如何创建一个按钮。 QPushButton * btn = new QPushButton;( 头文件 #include <QPushButton>) //设置父亲 btn->setParent(this); //...

来日浅谈的博客 300

【第三章:第一个QT小程序】

在Qt程序中,最常用的控件之一就是按钮了,首先我们来看下如何创建一个按钮

请关注我,不定时分享个人在大厂嵌入式开发工作经验 260

Qt多线程的创建详解

文章目录一、摘要1.线程基础2.为什么要创建多线程3.创建多线程的方法二、继承于QObject线程的创建1.项目创建2.代码编写与实现三、线程间数据的传递1. 通过外部变量2.通过信号与槽机制四、总结 一、摘要 1.线程基础 在Qt项目中,每个程序都是在线程中工作,进行UI显示、数据处理或者信号与槽的响应等等。程序启动后拥有的第一个线程为程序的主线程,在UI项目中,UI所在的线程即为主线程。 2....

qq_34578785的博客 4522

02.QT对象树+坐标系+信号和槽机制

使用connect()可以让我们连接系统提供的信号和槽。但是,Qt 的信号槽机制并不仅仅是使用系统提供的那部分,还会允许我们自己设计自己的信号和槽。

lz_逸尘9的博客 899

【Qt】边学边写之Qt教程(零基础)

Qt框架默认提供的标准信号和槽不足以完成我们日常应用开发的需求,比如说点击某个按钮让另一个按钮的文字改变,这时候标准信号和槽就没有提供这样的函数。但是Qt信号和槽机制提供了允许我们自己设计自己的信号和槽。函数声明在类头文件的signals域下没有返回值,void类型的函数只有函数声明,没有实现定义可以有参数,可以重载通过emit关键字来触发信号,形式:emit object->sig(参数);

choice~的博客 6万+
上一篇: Qt小程序(二)-Qt Designer使用简单介绍
下一篇: Qt小程序(四)-添加窗口部件到Qt Designer
simonXi-tech
博客等级 码龄10年 398粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值