Linux中I/O设备分为两类:块设备和字符设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。

用户自定义的控件可以通过继承现有的 Qt 控件实现,也可以直接从 QWidget 继承。QT中的label控件,没有预定义的单击信号。有时需要单击一个label控件来执行某些动作。如下图:

要实现上图的效果,我们可以自定义自己的label控件,操作步骤如下:

1) 新建一个类,从现有的QLabel继承。

2) 在新类中,自定义一个单击信号,并重写mousePressEvent和mouseMoveEvent事件。代码示例如下:

class MyLabel : public QLabel

{

Q_OBJECT

public:

explicit MyLabel(QWidget *parent = 0);

protected:

void mousePressEvent ( QMouseEvent * ev );

void mouseMoveEvent ( QMouseEvent * ev );

signals:

void clicked();

};

MyLabel::MyLabel(QWidget *parent) :

QLabel(parent)

{

this->setMouseTracking(true);

}

void MyLabel::mousePressEvent ( QMouseEvent * ev )

{

this->setCursor(Qt::PointingHandCursor);

emit this->clicked();

}

void MyLabel::mouseMoveEvent ( QMouseEvent * ev )

{

this->setCursor(Qt::PointingHandCursor);

}

以上代码中,当鼠标按下时,发自定义信号,当鼠标经过label控件时,鼠标形状会有变化。关于如何使用自定义的控件,见下图:

选中label. Promote to MyLabel.即可。并在构造函数中关联自定义控件的单击信号:

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this);

QObject::connect(ui->label, SIGNAL(clicked()),this, SLOT(fun()));

}

void MainWindow::fun()

{

QMessageBox::information(this, "dd", "clicked test");

}

点击注册,弹出消息框。

linux创建自定义组件qt,关于QT自定义控件相关推荐

  1. linux创建自定义组件qt,QT中的元对象系统:创建自定义的QT类型

    原创文章,转载请注明出处,谢谢! 作者:清林,博客名:飞空静渡 QVariant可以表示QT中的大部分类型,它和pascal中的variant类型或c中的void类型有点相似,不过它的使用和c中的un ...

  2. linux新建自定义命令,Linux 创建自定义命令

    Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用"alias"命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. ...

  3. 1-vuejs2.0实战:仿豆瓣app项目,创建自定义组件tabbar

    大家好,我给大家分享一下仿豆瓣app的教程.当然了,我们不是用原生去实现,而是用前端框架vuejs来实现豆瓣app.----第一次写文章,写得不好请见谅. 为什么我们选择豆瓣app 来做这样一个教程? ...

  4. vuejs2.0实战:仿豆瓣app项目,创建自定义组件tabbar

    大家好,我给大家分享一下仿豆瓣app的教程.当然了,我们不是用原生去实现,而是用前端框架vuejs来实现豆瓣app.----第一次写文章,写得不好请见谅. 为什么我们选择豆瓣app 来做这样一个教程? ...

  5. Vue创建自定义组件,并详解整个创建自定义组件的过程

    在vue开发项目中想自定义一个自己的组件,于是在网上找一下教程,教程基本的都一样,但是都不是很详细,我就按照网上的教程从头到尾学习了一遍,文章中如果有不正确的,还请各位大佬指出,共同进步. vue自定 ...

  6. 为Qt Designer创建自定义Widgets小部件

    为Qt Designer创建自定义Widgets小部件 为Qt Designer创建自定义Widgets小部件 入门 在注释domXml()功能 插件要求 创建行为良好的小部件 编译和安装插件 一个简 ...

  7. Qt Creator创建自定义效果和材质

    Qt Creator创建自定义效果和材质 创建自定义效果和材质 创建自定义效果 创建自定义材料 创建着色器文件 创建自定义效果和材质 " Qt Quick 3D效果"和" ...

  8. 【C#+SQL Server+打印组件】实现电商快递单打印系统 五:自定义组件和快递单模板设计(附源码和资源)

    需要源码和资源请点赞关注收藏后评论区留言私信~~~ 一.自定义组件(扩展TextBox) 由于快递单种类较多,所以在设计系统时考虑开发一个通用模板,由用户根据自己使用的快递单样式自行定义快递单的文本输 ...

  9. 微信小程序自定义组件--对话框

    自定义组件 小程序基础库版本1.6.3开始,小程序支持简洁的组件化编程. 开发过程中,要重复使用到某些页面功能或是组件,一般我们思路是把对应的页面功能或是组件抽象成自定义组件,以便不同页面中重复使用. ...

最新文章

  1. html 文件、图片、txt 下载 链接和按钮
  2. disconf mysql_disconf浅入浅出(一)disconf简介以及disconf-web端使用
  3. Apache Hudi x Pulsar Meetup杭州站火爆来袭,实践干货就等你来!
  4. 计算机操作系统在线作业,【在线】电子科大17春《计算机操作系统》在线作业1...
  5. AJAX,只是一种过渡技术吗?
  6. 50-10-010-配置-整体配置
  7. cuda stream
  8. Mtk Camera Hal到驱动的流程(2)
  9. vue项目PC端移动端适配方案
  10. N-gram模型(基于词表)
  11. CRM项目第一天(2021-12-16)1
  12. SIW-微带过渡结构
  13. 解决elasticsearch里拒绝更新mapping设置的错误
  14. 大数据就业前景如何? 你看连学术打假都用得上!
  15. IBM员工回顾与华为合作20周年:这是一支有激情的团队
  16. 猿辅导--课程质量建设
  17. android手机备份恢复出厂设置密码,手机恢复出厂设置 如何让安卓手机恢复出厂设置经验分享...
  18. 里恩临床试验项目管理系统(RH-CTMS)介绍
  19. 我的世界 - ComputerCraft: Tweaked [CC:T] 模组入门教程 (1) - 概述
  20. 开发自己的脚手架(react)

热门文章

  1. 13 代码分割之import静动态导入
  2. 珠宝条码打印扫描解决方案
  3. 阿里查出售假店主并索赔140万,这次是大数据帮的忙
  4. WEB-INFO/lib build path 的jar包问题
  5. postgresql9.4.4中文手册笔记-9.10 支持枚举函数
  6. iOS APP网络分析之rvictl(可以捕捉除了Wifi以外的网络类型)
  7. 重启唯一的窗体实例,以及调用系统重启函数失败解决办法
  8. Linux多线程编程(不限Linux)
  9. C++总结笔记(七)—— 运算符重载
  10. java utf 8 转unicode_java 在Unicode和UTF-8之间转换