我有一個包含幾個QLineEdits的QWidget。當我告訴父QWidget改變其背景顏色 動態,我希望孩子(即QLineEdits)繼承此修改。如何使QT小部件從其父部件更新修改的屬性?
有沒有一個簡單的(閱讀:一個函數調用)來做到這一點?
如果沒有任何東西彈出,我想我只是循環遍歷QWidget的子元素,但是當正確執行此操作時,我期望最終得到一個帶有很多開銷的遞歸函數,這就是爲什麼我要問。
編輯粗體。
我有一個包含幾個QLineEdits的QWidget。當我告訴父QWidget改變其背景顏色 動態,我希望孩子(即QLineEdits)繼承此修改。如何使QT小部件從其父部件更新修改的屬性?
有沒有一個簡單的(閱讀:一個函數調用)來做到這一點?
如果沒有任何東西彈出,我想我只是循環遍歷QWidget的子元素,但是當正確執行此操作時,我期望最終得到一個帶有很多開銷的遞歸函數,這就是爲什麼我要問。
編輯粗體。
一般而言,您不需要擔心對話框中的「開銷」。除非你正在做某種大規模的繪製操作,否則UI應用程序根本不需要很多優化。與Qt系統本身實際進行更改相比,挖掘所有孩子並改變其背景是相對較快的操作。
這就是說,我認爲有一種方法可以得到你想要的東西,但我不知道它是什麼。我敢打賭,它會完全按照你的意願去做。
你如何告訴它「改變顏色」順便說一句? Qt似乎沒有這樣做的操作。您可以分配背景角色或更改托盤。至於後者,
如果您在使用分配給該控件的樣式表設置背景顏色,不要在CSS中指定的任何選擇,所有的子部件將繼承適用於他們的任何屬性。
我發現使用允許我針對特定樣式的特定小部件的選擇器很有用。
QWidget[objectName|="special_color"]
{
color: rgb(255, 255, 255);
}
如果我用這個分配給容器構件的樣式表,將指定的顏色適用於任何子控件的名字開始與「special_color
」像「special_colorEditBox1
」不管他們是如何嵌套或包含。
當試圖動態改變顏色時,這也可以嗎?說我按下按鈕ChangeBackgroundColor,應該按鈕修改CSS?這甚至可能嗎? (我的CSS知識不會從HTML擴展到QT域...) – Timo 2010-12-09 21:37:02
感謝您的回覆!關於找到我的問題的答案,我會看到別人提出的。關於實際改變顏色,我確實使用了ColorRoles和Palettes。如果您想了解更多信息,只需留言! – Timo 2010-12-09 19:26:15