2012-08-15 83 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