Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/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
在QToolButton中设置边框图像时,如何设置边框颜色?_Qt_Stylesheet_Qtstylesheets - Fatal编程技术网

在QToolButton中设置边框图像时,如何设置边框颜色?

在QToolButton中设置边框图像时,如何设置边框颜色?,qt,stylesheet,qtstylesheets,Qt,Stylesheet,Qtstylesheets,我正在尝试创建一个带有大小调整图像、背景色和边框的QToolButton。我已经成功地获得了正确显示的图像(使用边框图像)和背景色。但是,我似乎无法让边框显示出来,因为它的背景色似乎正在“覆盖”它 我正在尝试使用QtCreator 2.7.0和Qt4.8.4中的样式表来实现这一点 我的样式表是: border-radius: 4px; border: 2px solid red; border-image: url(myImage) 0 0 0 0 stretch stretch; border

我正在尝试创建一个带有大小调整图像、背景色和边框的QToolButton。我已经成功地获得了正确显示的图像(使用边框图像)和背景色。但是,我似乎无法让边框显示出来,因为它的背景色似乎正在“覆盖”它

我正在尝试使用QtCreator 2.7.0和Qt4.8.4中的样式表来实现这一点

我的样式表是:

border-radius: 4px;
border: 2px solid red;
border-image: url(myImage) 0 0 0 0 stretch stretch;
border-repeat: no-repeat;
background-color: rgb(100, 255, 100);

我可以使用QLabel创建我想要的外观,将pixmap设置为我的图像,然后在样式表中设置边框和背景色,但我需要这是一个可单击的按钮。知道我做错了什么吗?

使用
背景图像设置图像
,因为您使用的是
边框图像
它会覆盖设置为
边框的样式

border-radius: 4px;
border: 2px solid red;
background-image: url(:/myImage.png);
background-color: rgb(100, 255, 100);

使用
背景图像设置图像
,因为您使用的是
边框图像
它会覆盖设置为
边框的样式

border-radius: 4px;
border: 2px solid red;
background-image: url(:/myImage.png);
background-color: rgb(100, 255, 100);

因此,解决方案非常简单,但为了完整性,我将介绍我第一次尝试的两个案例

在QToolButton上设置背景图像会将图像以图像的原始大小放置在按钮上。也就是说,它不会缩放图像,也不会在调整按钮大小时调整大小。使用背景图像确实允许我设置我想要的边界,然而,这是我认为我必须首先做的

在QToolButton上设置边框图像会将图像以缩放大小放置在按钮上以适合按钮,并在调整按钮大小时重新缩放。不幸的是,此方法覆盖了我试图设置的边框样式

最终,解决方案是简单地使用图像,而不是背景图像或边界图像。这给了我我想要的一切:一个可以按按钮缩放的图像和我想要的边框样式

我的样式表现在是:

border-radius: 4px;
border: 2px solid red;
image: url(myImage) 2 2 2 2 stretch stretch;
background-repeat: no-repeat;
background-color: rgb(100, 255, 100);

编辑:仅使用图像的警告是,如果需要,它将缩小,但不会增大。如果按钮比图像大,则图像将无法拉伸以适合按钮。幸运的是,我的图像比我的按钮大,所以它缩小了。请参阅:

因此,解决方案非常简单,但为了完整性,我将介绍我首先尝试的两种情况

在QToolButton上设置背景图像会将图像以图像的原始大小放置在按钮上。也就是说,它不会缩放图像,也不会在调整按钮大小时调整大小。使用背景图像确实允许我设置我想要的边界,然而,这是我认为我必须首先做的

在QToolButton上设置边框图像会将图像以缩放大小放置在按钮上以适合按钮,并在调整按钮大小时重新缩放。不幸的是,此方法覆盖了我试图设置的边框样式

最终,解决方案是简单地使用图像,而不是背景图像或边界图像。这给了我我想要的一切:一个可以按按钮缩放的图像和我想要的边框样式

我的样式表现在是:

border-radius: 4px;
border: 2px solid red;
image: url(myImage) 2 2 2 2 stretch stretch;
background-repeat: no-repeat;
background-color: rgb(100, 255, 100);

编辑:仅使用图像的警告是,如果需要,它将缩小,但不会增大。如果按钮比图像大,则图像将无法拉伸以适合按钮。幸运的是,我的图像比我的按钮大,所以它缩小了。请参阅:

背景图像在QToolButton上不可缩放。如果图像太大,则超出按钮的边界。如果图像太小,则图像不会拉伸到按钮的大小。我认为我在恰当地使用边界图像,我就是不能让边界工作。我正在复制一个旧版本的UI,该UI将按钮作为QToolButton,但使用调色板来设置所有内容,它似乎可以正常工作,但我想升级到使用样式表。背景图像在QToolButton上不可缩放。如果图像太大,则超出按钮的边界。如果图像太小,则图像不会拉伸到按钮的大小。我认为我在恰当地使用边界图像,我就是不能让边界工作。我正在复制一个旧版本的UI,该UI将按钮作为QToolButton,但使用调色板来设置所有内容,它似乎可以正常工作,但我想升级到使用样式表。它也适用于Qt5。非常感谢。(在Ubuntu、QtCreator 4.5.2、Qt5.9.5、GCC 7.3.0、64位上测试)它也适用于Qt5。非常感谢。(测试版本:Ubuntu、QtCreator 4.5.2、Qt5.9.5、GCC 7.3.0、64位)