QT QLineEdit 长文件名后面用省略号表示以及鼠标悬停获取完整名字

一、长文件名处理

二、鼠标悬停功能

一、长文件名处理


 //QFontMetrics用于获取给定字体的字符(串)大小
//setText() 在界面显示文件名   *elidedText()的第二个参数表示省略号出现的位置*
QFontMetrics elidfont(filePath->font());   
ui->Qlabel->setText (elidfont.elidedText(fileName, Qt::ElideRight, filePath->width()));

二、鼠标悬停功能

QToolTip->setToolTip()实现鼠标悬停显示提示信息的功能

QFont font;    
font.setPixelSize();
QToolTip::setFont(font);
   //以上几句用来设置悬浮输出信息的字体,下面一句实现鼠标悬停功能
filePath->setToolTip(fileName);

我使用了这个setToolTip()之后,发现鼠标悬停之后出现的显示框背景是黑的

这里是引用

然后根据这个博主的两种方法进行修改

https://www.cnblogs.com/linkyip/p/10308003.html

结果是:
1.QPalette方法没反应,不能被识别,网上说可能是跟父类QWidget有关,没用成
2.setStyleSheet方法倒是将悬浮框变成了白色,但是原本的显示框多了黑色边框,去不掉

在这里插入图片描述

我找阿找,找啊找,试了N种方法,终于让我找到了原因:setToolTip()的样式跟原显示框控件保持一致,唯独原控件背景为透明色(transparent)时,悬浮框会默认为黑色,所以我将元控件的背景色换成白色(white)之后,悬浮框也是白底了。

ui->qlabel->setStyleSheet("background:transparent;border-width:0;border-style:outset;");   //此为原控件的设置,下为修改
ui->qlabel->setStyleSheet("background:white;border-width:0;border-style:outset;");
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值