<學習筆記>
首先要明白,想要繪制圖案,必須自己重寫paintEvent(否則不能設置背景圖片,顏色還是可以填充),以下是例子
定義:
#include <QStyleOption> #include <QPainter>
void paintEvent(QPaintEvent *);
實現:
1 void Picture::paintEvent(QPaintEvent *) 2 { 3 QStyleOption opt; 4 opt.init(this); 5 QPainter p(this); 6 style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this); 7 }
以QWidget為例
1 Board *bordwgt=new Board(this); 2 bordwgt->setObjectName("bord");//設置對象樣式表的名字 3 //其中#bord表示對board這個樣式表名字的有效,{}大括號里面的同html用法,如果想換成顏色則:background-color:rgb(x,x,x)即可 4 //如果不懂html則可以去控件屬性中找到stylesheel,選擇你想要的效果,會自動生成html代碼 5 bordwgt->setStyleSheet("#bord{border-image: url(:/image/image/bord.jpg);}"); 6 bordwgt->setGeometry(150,50,500,500); 7 bordwgt->show();