怎么对QGraphicsView的图画进行更新
使用update();函数
修改QGraphicsView中滚动条的样式
最近项目需要用到滚动条,原本的界面是直接继承QWidget写的,如果要添加滚动条,就要用到QScrollBar、QScrollArea等类,我研究了半天,感觉自己智商不够难以应用,QML也试了下,也没搞出来。本来也打算直接自己去写类,但大体设想了下,又觉得要花不少时间才可能做出来。
最后呢,就决定先用QGraphicsView试一下,首先要解决的就是滚动条样式的问题,因为默认的滚动条实在是太丑了,咱不说搞的很完美,但至少让它好看点。
QGraphicsView中的滚动条有水平和垂直两个方向,我这里分别用两种方式进行简单修改。
//水平方向滚动条样式修改
QGraphicsView view(&scene);
QScrollBar* hScrollBar = view.horizontalScrollBar();
hScrollBar->setStyleSheet("QScrollBar:horizontal {"
"border: none;"
"background: #F5F5F5;"
"height: 10px;"
"margin: 0px 20px 0px 20px;"
"}"
"QScrollBar::handle:horizontal {"
"background: #CFCFCF;"
"min-width: 20px;"
"}"
"QScrollBar::add-line:horizontal {"
"border: none;"
"background: none;"
"}"
"QScrollBar::sub-line:horizontal {"
"border: none;"
"background: none;"
"}");
然后是垂直方向的
//垂直方向滚动条样式修改
QGraphicsView view(&scene);
QString styleSheet = "QScrollBar:vertical {"
"border: none;"
"background-color: #F5F5F5;"
"width: 10px;"
"margin: 0px 0px 0px 0px;"
"}"
"QScrollBar::handle:vertical {"
"background-color: #CFCFCF;"
"min-height: 20px;"
"}"
"QScrollBar::add-line:vertical {"
"height: 0px;"
"subcontrol-position: bottom;"
"subcontrol-origin: margin;"
"}"
"QScrollBar::sub-line:vertical {"
"height: 0px;"
"subcontrol-position: top;"
"subcontrol-origin: margin;"
"}";
view.verticalScrollBar()->setStyleSheet(styleSheet);
修改后的效果
在QGraphicsView中,怎么进行鼠标响应
在QGraphicsView中,进行鼠标响应的方式和在QWidget中差不多,都是使用mousePressEvent等函数
、、、、、、、、、、分割线
要做其它的了,这个先不搞了