2011-08-04 55 views
0

(SRY我的英語不好,但我會給我最好的)中自定義使用Qt QDockWidget沒有QtDesigner

我目前試圖自定義幾個QDockWidgets的風格。我通過Qt Documentation -> Style Sheet找到的唯一解決方案是在QtDesignerView中通過右鍵單擊 - >設置樣式表並設置一個硬編碼(看起來類似於css)來將樣式表設置爲QtDesignerView中的對象。我很可惜地不使用QtDesigner,而是在QtCreator的EditorView中編寫圖形的東西。

我現在的問題 - 是否有可能通過正常的編輯器更好比

widget.setObjectName("widget") 

自定義窗口小部件,然後通過構造這樣設置樣式表:

this->setStyleSheet("QDockWidget#widget{ background-color: red;........}");

這個工作得很好簡短的PushButtons例如但把十幾行作爲一個字符串不可能是最好的解決方案嗎? 我會很高興的一些提示,因爲我無法找到有關的淨多,我的CPP/QT knownledge還不是最好的,雖然:(

感謝

+0

你最好會回來的問題和回覆人們試圖幫你。這是朝向垃圾郵件。 –

回答

1

這可能不是最好的解決辦法,但我倒是可能做的東西沿着這些路線:

  • 在.css文件創建所需的樣式
  • 子類QDockWidget
  • 添加使用QFile加載方法/解析.css文件和設置的樣式等
  • 然後我可能會看中,並做一些事情QStyle和其他相關類
0

你從你的程序中調用setStyleSheet。

例如:

pb->setStyleSheet(QApplication::translate("failoverCrit", "color: rgb(0, 0, 0);background-color: qlineargradient(spread:pad, x1:0.922018, y1:0.574, x2:0.385321, y2:0.159, stop:0 rgba(106, 106, 106, 255), stop:1 rgba(255, 255, 255, 255));", 0, QApplication::UnicodeUTF8)); 

例2:

ui.pbAssign->setStyleSheet(QString::fromUtf8("QPushButton {\n" 
    " border: 1px solid green;" 
    " border-radius: 3px;" 
    " padding: 4px;" 
    " background-color: qlineargradient(spread:pad, x1:1, y1:1, x2:1, y2:0, stop:0 rgb(255,255,153), stop:0.668182 rgba(255, 255, 255, 255));" 
    " }\n" 
    "")); 

刪除樣式:

ui.pbAssign->setStyleSheet(""); 
+0

其實我沒有在給出答案之前通讀過你的問題,但我想知道你爲什麼不能使用Designer。可能你可以在qtDesigner中生成樣式表,然後查看錶單源,最後複製並粘貼生成的樣式表。 –