Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QWidget多个样式无法正常工作_Qt_Qt5_Qtstylesheets_Qt5.10 - Fatal编程技术网

Qt QWidget多个样式无法正常工作

Qt QWidget多个样式无法正常工作,qt,qt5,qtstylesheets,qt5.10,Qt,Qt5,Qtstylesheets,Qt5.10,当我尝试在一个小部件上设置多个样式时,只应用第一个样式 我想删除当我将鼠标悬停在QToolButton上时出现的边框以及菜单中的向下箭头 基本上,按钮包含设置动画速度的菜单,如视频播放器 这是我的密码: ui->tool_speed_button->setStyleSheet("border: none; QToolButton::down-arrow {image: none;}"); 这是边框和向下箭头: 我的QToolButton 无论我是将代码片段放入代码中,还是直接在Q

当我尝试在一个小部件上设置多个样式时,只应用第一个样式

我想删除当我将鼠标悬停在QToolButton上时出现的边框以及菜单中的向下箭头

基本上,按钮包含设置动画速度的菜单,如视频播放器

这是我的密码:

ui->tool_speed_button->setStyleSheet("border: none; QToolButton::down-arrow {image: none;}");
这是边框和向下箭头:

我的QToolButton

无论我是将代码片段放入代码中,还是直接在Qt设计器上设置样式,它仍然只在这两种情况下应用第一种样式

如何将两种样式应用于同一对象?

如果要将样式应用于小部件下的多个对象或子对象,则需要将参数分组到要应用样式的对象

在样式表字符串中,您将
边框:none;“
挂起,但也有一个
QToolButton
的样式。只有将样式仅应用于
工具\速度\按钮
时,才能执行此操作

试着这样做:

ui->tool_speed_button->setStyleSheet("QWidget{border: none; }QToolButton::down-arrow {image: none;}");
您需要将
Qwidget
替换为
tool\u speed\u按钮类型
。在Qt中启动项目时,可以在设计器文件中检查主窗口的样式表,以获取有关如何格式化样式表的更多示例

在您的情况下,您可以这样做:

ui->tool_speed_button->setStyleSheet("QToolButton::down-arrow {border: none;image: none;}");
编辑 我只是想为我的答案中的第一个样式表示例添加一个解释:

在样式字符串中,第一组
QWidget{border:none;}
将样式应用于属于
tool\u speed\u按钮的任何
QWidget

QToolButton::down arrow{image:none;}
仅将样式应用于属于
tool\u speed\u button
且类型为
down arrow
(这是
QToolButton
的属性)的任何
QToolButton
。由于
tool\u speed\u button
本身是
QToolButton
本身,因此它将大括号中指定的样式应用于自身及其所有子项

编辑:
我错了。如问题所示,您可以使用悬挂样式表属性,而不必在花括号下分组样式表属性。悬挂属性仅适用于小部件中的所有相关对象。

感谢您的深入回答!遗憾的是,它在我的应用程序中不起作用。。我还尝试将我的QToolbutton子类化为一个新对象,将其中一个样式应用于新对象,将第二个样式应用于特定的QToolbutton,但它仍然不起作用。@JeyzerMC在Qt designer中编辑样式表时,它是否显示“样式表有效”或“样式表无效”?它显示“样式表有效”@你到底想在这里干什么?您是否试图删除向下箭头,只想要没有边框的