QT中控件不满足要求那么为你的控件做“提升”吧

这篇具有很好参考价值的文章主要介绍了QT中控件不满足要求那么为你的控件做“提升”吧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们在VisualStudio中例如VC或者C#中写一些个性化比较强的项目都会对控件有更高的要求,那么当我们的要求得不到满足时就需要考虑用到自定义控件了,其中自定义控件有两种方式,一种是完全重写,另一种简单的方法是继承自现有的控件。
这里我们说控件提升就是QT中采用继承自现有控件类的一种自定义控件,只不过这里的提升比VS中的自定义控件来得更加容易。简单两步即可完成!

一、新建控件

1、新建一个提升

我们可以在设计器中拖放任何控件,这里我们以textedit控件为例。
QT中控件不满足要求那么为你的控件做“提升”吧

点击提升即可,打开一个命名窗口,输入好名称后点击“添加”按钮
QT中控件不满足要求那么为你的控件做“提升”吧
接下来,我们就要为提升的控件,准备对应的代码文件和头文件了。点击提升按钮
QT中控件不满足要求那么为你的控件做“提升”吧

2、选择一个已有的提升

如果我们前面已经新建了提升,当我们在其他form中需要使用的时候,直接指定一个提升即可,不必再为同样功能的控件提升逐一写提升代码了。如下图:
QT中控件不满足要求那么为你的控件做“提升”吧

二、准备控件支持文件

1、选择空白类文件编写支持文件

提升是需要准备支持文件的,每个提升后的控件其实就是一个新的控件类,那么就需要cpp和h文件来支持。这里我们来一份空白的文件
QT中控件不满足要求那么为你的控件做“提升”吧
一定记得勾选include Qwidget,否则后面的代码编写要从零开始。这里可以省去很多麻烦
QT中控件不满足要求那么为你的控件做“提升”吧

2、利用窗体类获取支持文件

当然,事情都是灵活的,你也可以利用界面设计器的widget窗体来完成,因为我们知道任何控件的父类都是widget
QT中控件不满足要求那么为你的控件做“提升”吧
只不过这里会多一个UI文件,我们时候将其删除即可。

三、编写必要代码

1、利用空白类获取支持文件的代码编写

一开始,我们得到的头文件如下图这样
QT中控件不满足要求那么为你的控件做“提升”吧
cpp文件如这样
QT中控件不满足要求那么为你的控件做“提升”吧

假如我们要提升的为textedit控件,那么修改好的代码为:

#ifndef NEWTEXTEDIT_H
#define NEWTEXTEDIT_H

#include <QWidget>
#include <QTextEdit>

class newTextEdit : public QTextEdit
{
    Q_OBJECT
public:
    newTextEdit(QWidget *parent = 0);
};

#endif // NEWTEXTEDIT_H

修改好了的cpp文件

#include "newtextedit.h"

newTextEdit::newTextEdit(QWidget *parent)
    : QTextEdit(parent)
{

}

2、利用窗体类获取支持文件的代码编写

和生成一个窗体一样,系统会为我们生成三个文件,这样我们只要小小的修改就可以了,除了把包涵的ui的头文件去掉,还要修改下图所示标识部分的代码
QT中控件不满足要求那么为你的控件做“提升”吧
修改完后是这样:

#include "newtextedit.h"
newTextEdit::newTextEdit(QWidget *parent) :
    QTextEdit(parent)
{
    //ui->setupUi(this);
}

newTextEdit::~newTextEdit()
{
    delete ui;
}

cpp文件这样

#ifndef NEWTEXTEDIT_H
#define NEWTEXTEDIT_H

#include <QWidget>
#include <QTextEdit> //增加控件的类

namespace Ui {
class newTextEdit;
}

class newTextEdit : public QTextEdit //继承的父类修改为控件类
{
    Q_OBJECT

public:
    explicit newTextEdit(QWidget *parent = 0);
    ~newTextEdit();

private:
    Ui::newTextEdit *ui;
};

#endif // NEWTEXTEDIT_H

三、需要注意的

1、两种获取支持文件的方式,我强烈推荐第二种,通过窗体设计类获取,第一种空白类文件的修改过于麻烦
2、需要注意的是,如果你已经使用了控件的某些属性,那么在自定义控件中也须需要实现的。文章来源地址https://www.toymoban.com/news/detail-434242.html

到了这里,关于QT中控件不满足要求那么为你的控件做“提升”吧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ensp添加端口,来满足实验要求

      在实验文档中,会出现S1/0/0  S2/0/0 S3/0/0 S4/0/0 G2/0/0 G3/0/0 G4/0/0 ,但在手动连线到设备 没有出现对应的端口,我们要手动添加端口,来跟进实验需求。 举例在路由器AR2220路由器上,拖进实验区域——右击——设置—— 1、可以看到eNSP支持的接口卡-下滑可以用更多  1GEC:描述

    2024年02月08日
    浏览(72)
  • 互联网+医疗|如何满足各项安全合规要求

    互联网+医疗背景下,如何有针对性地规范医疗健康App运营,堵住个人隐私信息安全漏洞,是一个亟待解决的行业问题,也是一个数字时代的公共安全问题。此前,多款医疗健康类App就因过度收集个人信息被监管通报。 与电子商务、消费金融、音视频平台等其他领域相比,医

    2023年04月17日
    浏览(58)
  • “让我们为你添加账号”跳过方法以及后续操作

    按Ctrl+shift+f3就可以了 跳过之后别着急关机,现在是管理员账号,但微软是默认关闭管理员权限的 所以 1.打开cmd,查看自己电脑的用户账号 2.然后输入以下代码,显示账号信息 如果账号被停用,“帐户启用”那一行会显示“No” 如果账号已启用,“帐户启用”那一行会显示“

    2024年02月12日
    浏览(73)
  • 华为OD机试-求满足要求的最长子串

    给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求: 1、只包含1个字母(a-z,A~Z),其余必须是数字; 2、字母可以在子串中的任意位置; 如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。 字

    2024年02月10日
    浏览(33)
  • Win10输入密码不满足密码策略要求的解决方法

    在 Win10 电脑中用户输入密码的时候,收到了不满足密码策略要求的提示,导致用户不能成功设置密码。用户先打开Win10系统的组策略编辑器,点击关闭密码必须符合复杂性要求功能保存即可。以下小编将分享Win10密码不符合策略要求的解决方法步骤,解决后用户随意输入密码

    2024年01月17日
    浏览(120)
  • Unity利用正则表达式判断字符串是否满足要求

    首先该方法属于C#,是C#提供的,不是unity提供的,但我使用这个是在unity中使用的,故此我将其归入unity笔记。 该方式可用于注册、登录等等需要用户输入的场景,用以判断字符串是否满足正则表达式的要求 首先介绍该API 这里开始介绍,大家可以看看官方的文档Regex.IsMatch 方

    2024年01月16日
    浏览(53)
  • FPGA 的数字信号处理:重写 FIR 逻辑以满足时序要求

    在上一篇文章中(FPGA 的数字信号处理:Verilog 实现简单的 FIR 滤波器)演示了在 Verilog 中编写自定义 FIR 模块的初始demo。该项目在行为仿真中正常,但在布局和布线时未能满足时序要求。 所以今天的文章让我们来看看当设计不能满足时序要求时如何分析并解决它。 当在目标

    2024年02月09日
    浏览(45)
  • Visio/PPT/Matlab输出300dpi以上图片【满足标准投稿要求】

    遵照如下输出选项,另存为tif格式文件时,选择正确输出便是300dpi以上 文件选项选中导出设置,在渲染中选择dpi为600,导出图片即可,科研建议选择tif格式文件 打开注册表,win+r键,输入“regedit”,按照自己ppt的版本找到如下路径的注册文件,新建ExportBitmapResolution文件,按

    2024年02月15日
    浏览(44)
  • 为你的J-FLASH添加MCU型号

    1、首先你要有你需要添加的MCU对应的FLM算法文件。这里我以某大HC32L13x为例。 2、将FLM算法文件添加到JLINK目录下的Device文件夹下,我这里新建一个HDSC文件夹,并将FLM放在此目录下。 3、修改JLINK目录下的 JLinkDevices.xml  在xml文件中添加MCU器件信息。  对应你MCU的FLASH RAM信息修

    2024年02月06日
    浏览(41)
  • 小程序用户隐私新规,微信小程序开发者需满足新要求

    微信公众平台运营中心最新公告指出,从2023年9月15日开始,涉及处理用户个人信息的小程序开发者需要满足新要求。开发者须主动同步用户同意并遵守小程序的隐私保护指引和其他信息处理规则,方可调用微信提供的隐私接口。 并且,在确认小程序是否涉及处理用户个人信

    2024年02月09日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包