2012-08-25 77 views
0

如何修改現有的樣式表?如何修改Qt樣式表?

例如:如果我想創建按鈕,按下時每個按鈕都修改樣式表的一個方面。一個按鈕可以插入10的餘裕屬性。另一個按鈕可以使背景顏色爲藍色。最後,另一個按鈕可以圍繞角落。這裏的技巧是,我不想存儲所有的變量,並重新編譯每個按鈕上的樣式表。例如,我想要一個簡單的this->setStyleSheet(this->getStylesheet()+"margin-left: 10px:")

有沒有辦法做到這一點?

+1

每個小部件都有一個styleSheet()函數和setStyleSheet()。他們使用QString。你爲什麼不使用它們? – saeed

+0

@saeed哦,我不知道'styleSheet()',這是否像我上面使用'getStyleSheet()'工作?如果風格是在父級中設置的呢? 'styleSheet'函數是否會返回改變後的樣式? – chacham15

+0

是啊!但是繼承的樣式表不會在styleSheet函數中返回。你可以使用parent()函數,然後從父類獲取styleSheet。 – saeed

回答

2

這裏是main.cpp中的代碼

QWidget wdg; 
    QHBoxLayout hlay; 
    wdg.setStyleSheet("border:2px solid rgb(74, 74, 74);"); 
    QPushButton btn; 
    btn.setStyleSheet("border-radius:5px;"); 
    btn.setText("Hello"); 
    QPushButton btn2; 
    btn2.setStyleSheet("background-color: rgb(190, 190, 190);"); 
    btn2.setText("Hello"); 
    hlay.addWidget(&btn); 
    hlay.addWidget(&btn2); 
    qDebug()<<btn.styleSheet(); 
    wdg.setLayout(&hlay); 
    wdg.show(); 

設置和獲取樣式表的工作原理與QString的,所以你可以使用+運算符。

+0

好吧,你錯過了onpress位,但它確定,我明白了。 – chacham15