一、长文件名处理
二、鼠标悬停功能
一、长文件名处理
//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;");