Qt鼠标悬浮在图片上显示删除字样

简介: Qt鼠标悬浮在图片上显示删除字样

用Qt实现这样一个效果,当鼠标悬浮到图片上时,显示删除字样,当点击删除时删除该图片。常用在注册页面。例:

实现方法:用QLabel展示图片,再用一个QPushButton覆盖在图片上,按钮背景设置为透明,当鼠标移动到图片上时按钮显示,其他情况按钮隐藏。删除图片在点击删除按钮时进行。

因此需要重写鼠标移动事件:

void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
    QRect rect(ui->label->pos(), ui->label->size());
    ui->pushButton_2->setVisible(rect.contains(event->pos()) && ui->label->isVisible());
}

按钮显示与否取决于当前鼠标是否在rect矩形范围中以及当前是否有图片(没有图片还删什么?)。

需要注意的是窗体要设置setMouseTracking(true); 设置为true,当鼠标移动时便能检测到鼠标移动事件。否则需要按下鼠标并且移动才能检测到。解释:

同时QLabel和QPushButton也需要设置该选项。

删除按钮背景色:

background-color: rgba(192, 192, 192, 50);

源码地址:

demo4 鼠标悬浮在图片上时,出现删除字样,点击删除可以删除该图片

相关文章
|
1月前
|
存储 机器学习/深度学习 人工智能
Qt魔法书:打造自定义鼠标键盘脚本(二)
Qt魔法书:打造自定义鼠标键盘脚本
35 0
|
3月前
|
存储 容器
QT中QListWidget实现QListWidgetItem图片和文字居中
在使用QT开发软件的过程中,很多时候使用QListWidget来实现列表项的功能,比如MS系统的功能模块菜单,如下面2张图所示,其中第一张图是带文字和图标的列表项,第二张图是纯图标的模式,在最近开发的平台客户端的某个功能模块都用上了。
187 0
|
5月前
|
存储 Cloud Native Linux
Qt 关于mouseTracking鼠标追踪和tabletTracking平板追踪的几点官方说明
Qt 关于mouseTracking鼠标追踪和tabletTracking平板追踪的几点官方说明
|
7月前
|
算法 C++
|
1月前
|
开发框架 Linux API
Qt魔法书:打造自定义鼠标键盘脚本(一)
Qt魔法书:打造自定义鼠标键盘脚本
23 0
|
2月前
|
存储 C++ 开发者
QT基础【4-简易的图片查看程序】
QT基础【4-简易的图片查看程序】
|
3月前
|
C++
QT 重写控件(QPushButton为例)实现背景图片的切换和鼠标样式切换
一般在QT开发中,使用setCursor()给控件设置鼠标的样式效果(一般是手型和箭头的切换),一般情况下,这个函数也是起作用的,但是一旦调用了全局QApplication::setOverrideCursor()设置鼠标效果后,在使用setCursor给控件设置鼠标样式就不起效果了,这是QT的机制
75 0
|
3月前
|
小程序
Qt实现图片可拖拉
Qt实现图片可拖拉
|
8月前
Qt图片定时滚动播放器+透明过渡动画
解决:[QWidget::paintEngine: Should no longer be called QPainter::begin: Paint device returned engine == 0, type: 1] 需要在哪个控件上绘制,就要在哪个控件类中重写 paintEvent() ,所以本项目 需要使用自定义的MyQLabel继承QLabel
72 0
|
4月前
[Qt5] 鼠标响应事件和计时器事件
[Qt5] 鼠标响应事件和计时器事件
26 0

热门文章

最新文章

推荐镜像

更多