2012-08-15 81 views
1

我使用Qt 4.7并试图将Qt样式表应用到我的应用程序。 正如here在边框图像的帮助下,您可以使用“原样”保留角落的图像。这是应该如何工作的good example。不幸的是我无法得到相同的结果。而不是保留的角落,我得到切割和重复图像的中间部分。 我的代码中是否有任何错误或者它在Qt中没有实现? (通过gui designer添加到MainWindow的按钮)。保存边角,同时拉伸边框图像usging qt样式表

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    a.setStyleSheet("QPushButton{ border-image: url(:/border-image-marked.png) 25 30 10 20 repeat repeat; }"); 

    MainWindow w; 
    w.show(); 

    return a.exec(); 
} 

从上面的示例中提取的图像。 Direct link它。

p.s.它适用于QML的BorderImage

回答

1

你正在尝试将你的styleSheet应用到一个不存在的QPushButton。

根据http://qt-project.org/doc/qt-4.8/stylesheet-reference.html#border-image-prop只有以下元素支持这个CSS属性:

此属性QAbstractItemView中的子类, QAbstractSpinBox子类,QCheckBox,QComboBox,QFrame,QGroupBox, QLabel,QLineEdit的,QMenu,QMenuBar支持,QPushButton,QRadioButton, QSplitter,QTextEdit和QToolTip。

+0

我试图应用[“border-image”](http://qt-project.org/doc/qt-4.8/stylesheet-reference.html#border-image-prop)属性,而不是“背景”。和文档指出QPushButton支持它。我需要它来处理所有的按钮,所以使用QApplication :: setStyleSheet()。 – 2013-01-07 11:25:01

+0

Hi @vkjr。正如我在我的消息中所写的,QPushButton是支持的项目之一。链接错误(复制粘贴错误)。我从来没有说过它不被支持。然而,这里的问题是不同的;您试图将其应用于不存在的QPushButton。你的代码中没有任何内容。您没有创建QPushButton来将样式表应用到。你首先需要创建它,然后应用它。 – Phil 2013-01-07 15:27:04

+0

Button属于MainWindow,添加了UI设计器。我没有提到这个,因为这个想法很明显。 – 2013-01-08 09:59:39