這個treewidget樣式真是寫得讓人心碎,主因是那個天殺的表頭,真是塊古里古怪的硬骨頭,令人抓狂,一直找不到給表頭設定背景圖的方法,讓我一度決定棄用tree。
后來表頭的屬性找到了,下拉條又找不到。第一次接觸stylesheet,完全是邊做邊學,不知所謂,又不想不做,默認的樣式我就是看不過眼,處女座的人就是比較神經質。
網上關於treewidget的樣式介紹少之又少,不知道是不是因為大牛們都采用了treeview等其他方法去做了,或者說是tree太簡單,只有我那么弱智還要去網上搜。
總之,經過2天堅持不懈的泣血努力,總算是把這個控件的樣式完完全全換掉了。
特此記錄,以資鼓勵。
——————————————————————————————
樹形列表控件,主要是對“表頭”“列表背景” “下拉條”“鼠標掃動”做處理,以達到自定義效果。
不廢話了,直接上代碼。
m_QTreeWidget->setStyleSheet("
//列表背景
QTreeWidget{background-image:url(./image/treelistbk.jpg);}\
//每一項的身高 鼠標掃過 按下的變色
QTreeWidget::item{height:40px;}\
QTreeWidget::item:hover{}\
//表頭背景 表頭身高
QHeaderView::section{border-image: url(./image/header-test.png); height:40px;} "
);
列表的表頭,給圖片背景!天知道居然要用Qheaderview!!!天殺的!!!
//下拉條的樣式設置 具體內容 參考上一篇
http://blog.sina.com.cn/s/blog_8a621fc80102vizs.html
m_QTreeWidget->verticalScrollBar()->setStyleSheet("");
m_QTreeWidget->horizontalScrollBar()->setStyleSheet("");
完畢。其實很簡單吧。
但是卻花了很長時間。
俺寫的第一個stylesheet。呼呼。雖浪費2天時間,人都快瘋掉,但好歹最終成功了。
也算是入門了。
————————————————————————————
以下是我的其他設置,作為一個初學者,都這兩天慢慢琢磨的,留給自己看。
//字體
m_pQTreeWidget->setFont(QFont("Helvetica"));
//表頭字體 居中 (表內項目的字體居中要去add item的地方進行設置,目前沒找到別的好辦法。。。嚶嚶嚶。。。。)
m_pQTreeWidget->headerItem()->setFont(0,QFont("Helvetica",18,QFont::Bold));
m_pQTreeWidget->headerItem()->setFont(1,QFont("Helvetica",18,QFont::Bold));
m_pQTreeWidget->headerItem()->setTextAlignment(0,Qt::AlignHCenter | Qt::AlignVCenter);
m_pQTreeWidget->headerItem()->setTextAlignment(1,Qt::AlignHCenter
Qt::AlignVCenter);
//表頭不許移動,不許點擊,不許排序。。。。哼哼哈。在我地盤的,你就得聽我的!
setHeaderMovable(false);
m_pQTreeWidget->header()->setClickable(false);
m_pQTreeWidget->setFrameShape(QFrame::NoFrame); //設置無邊框這樣才可以自定義treewidget背景圖
//表頭可點擊,點擊后可排序
#if 0
//setHeaderHidden(true); //去掉表頭
m_pQTreeWidget->header()->setClickable(true); //點擊頭自動排序
m_pQTreeWidget->setSortingEnabled(true); //用來設置是否可以排序
m_pQTreeWidget->sortItems(0, Qt::AscendingOrder); //id屬性,即第0列,升序排列
#endif
----------------------------------------------------------------------
by the way,整理代碼的時候發現了,有個很變態的地方。
當這一句setFrameShape(QFrame::NoFrame);若寫在設置橫向滾動條的樣式之前,則橫向滾動條就出不來了,橫向滾動條本來是自動出現的。
(雖然我本來就不想要它出現。但我覺得哦,也許樣式應該寫在最前面。)
http://blog.sina.com.cn/s/blog_8a621fc80102vj09.html