在Qt中,我为QPushButton设置了背景图片,然后为该按钮添加了一个工具提示,并且该工具提示与该按钮具有相同的背景图片,而我无法使用样式表进行更改,我缺少什么?>
在我的代码中,我有:
products = Productos.objects.filter(precio__lte=max_price, precio__gte=min_price, vendido_por__media_valoraciones__gte=min_score, tiene_tags__in=tag_queryset)
在我的style.qss中,我有:
button->setStyleSheet("background-image: url(pathToImage);");
button->setToolTip("Click here");
可以使用字体大小和边框,但是工具提示的背景图像与按钮的背景图像相同。 我还尝试过在工具提示中添加另一个背景图片,但这也没有用。
如何更改工具提示的背景?
答案 0 :(得分:1)
您必须指定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); }");
答案 1 :(得分:0)
使用setStyleSheet
设置qss时,样式表将应用于对象的所有子代。您可以使用仅适用于QPushButton
的样式表来避免这种情况
button->setStyleSheet("QPushButton {background-image: url(pathToImage);}");