繁体   English   中英

如何为QPushButton的工具提示设置背景?

[英]How can I set background for a QPushButton's tooltip?

在Qt中,我为QPushButton设置了背景图片,然后为该按钮添加了一个工具提示,该工具提示与该按钮具有相同的背景图片,并且无法用样式表更改它,我缺少什么?

在我的代码中,我有:

button->setStyleSheet("background-image: url(pathToImage);");
button->setToolTip("Click here");

在我的style.qss中,我有:

QToolTip{
    background-image: none;
    background-color: white;
    font-size: 20px;
    border: 1px solid black;
}

字体大小和边框都可以,但是工具提示的背景图像与按钮的背景图像相同。 我还尝试在工具提示中添加另一个背景图像,但它也没有起作用。

如何更改工具提示的背景?

您必须指定将属性应用于QWidget位置。 如果您不这样做,它将应用于所有小部件。

在您的情况下,为了避免工具提示中的背景图像,您必须指定要将该样式应用于QPushButton小部件。 该文件说:

如果我们希望该属性仅应用于属于特定对话框的子代(或孙代或孙代或孙代)的QLineEdits,我们宁愿这样做:

myDialog-> setStyleSheet(“ QLineEdit {background-color:yellow}”);

在您提到的示例中,如果要修改工具提示和按钮的样式,请执行以下操作:

ui->pushButton->setStyleSheet(""
    "QPushButton { background-image: url(me.png); }"
    "QToolTip { color: #ffffff; background-color: #000000; border: 0px; }");

它会给你这样的东西

在此处输入图片说明

更新:

如果您想将其应用于单个对象,而不是其他相同类型的窗口小部件,文档说明:

如果我们希望该属性仅应用于一个特定的QLineEdit,则可以使用QObject :: setObjectName()为其命名,并使用ID选择器对其进行引用:

myDialog-> setStyleSheet(“ QLineEdit#nameEdit {background-color:yellow}”);

因此,在您的情况下:

ui->pushButton->setObjectName("awesomeButton");
ui->pushButton->setStyleSheet("QPushButton#awesomeButton { background-image: url(me.png); }");

当使用setStyleSheet设置qss时,样式表将应用于对象的所有子对象。 就您而言,您可以仅将样式表用于QPushButton来避免这种情况

button->setStyleSheet("QPushButton {background-image: url(pathToImage);}");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM