c++ QTooltip不必要的行为,按钮的图标在工具提示中部分可见为背景

lh80um4z  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(92)

x1c 0d1x的数据
所以,我认为这张图片不言自明.工具提示应该有黑色文本颜色和浅灰色背景.好吧,如果你仔细看,背景是浅灰色.但文本是白色和最重要的,图标启用按钮显示.这不应该!其他默认按钮,没有图标,工具提示显示正确。我试图解决这个不透明(不同的值)和rgba(211,211,211,0/255),但什么都不起作用。这是一个众所周知的问题吗?我的系统是Windows 10 64位,我使用Qt Creator 4.12.2(社区)与Qt 5.12.9 MinGW 64位编译器。

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    MainWindow w;
    w.setStyleSheet("QToolTip { background-color: lightgrey; "
                    "color: black; "
                    "border: none } "
                    "QWidget { color: lightblue; "
                    "background-color: #404040 }");
    w.show();
    return a.exec();
}

字符串
该按钮的样式表看起来像这样:

ui -> CmdSave -> setStyleSheet(" :disabled { color: white; "
                                   "border-image: url(:/miscRsc/misc_icons/filesave_128x128_disabled) 3 10 3 10; "
                                   "border-top: 3px transparent; "
                                   "border-bottom: 3px transparent; "
                                   "border-right: 10px transparent; "
                                   "border-left: 10px transparent } "
                                   ":enabled { color: white; "
                                   "border-image: url(:/miscRsc/misc_icons/filesave_128x128) 3 10 3 10; "
                                   "border-top: 3px transparent; "
                                   "border-bottom: 3px transparent; "
                                   "border-right: 10px transparent; "
                                   "border-left: 10px transparent } "
                                   " :pressed { color: white; "
                                   "border-image: url(:/miscRsc/misc_icons/filesave_128x128_pressed.png) 2 9 2 9; border-top: 2px transparent; "
                                   "border-bottom: 2px transparent; "
                                   "border-right: 9px transparent; "
                                   "border-left: 9px transparent }");

mwyxok5s

mwyxok5s1#

现在我们离问题和解决方案更近了。通过在设置应用程序的样式之后设置按钮样式,工具提示将继承按钮的样式-特别是它将继承按钮的边框图像,这就是为什么你会看到按钮的边框图像反映在工具提示中。你可以通过使用后代选择器来设置按钮的样式来避免这种情况(我简化了你的样式):

QPushButton:disabled { border-image: url(:/folder.png) 3 10 3 10; border: 3px transparent } 
QPushButton:enabled  { border-image: url(:/folder.png) 3 10 3 10; border: 3px transparent } 
QPushButton:pressed  { border-image: url(:/folder.png) 3 10 3 10; border: 2px transparent }

字符串

相关问题