-
UID:177989
-
- 注册时间2016-12-27
- 最后登录2017-09-14
- 在线时间5小时
-
- 发帖19
- 搜Ta的帖子
- 精华0
- 金钱200
- 威望29
- 贡献值0
- 好评度19
-
访问TA的空间加好友用道具
|
关键代码是: painter.drawText(20,1*50,tr("%1").arg((1*50))); painter.drawText( 20, 2* 50,tr( "%1").arg(( 2* 50))) 按道理i增加了,应该是在更高的位置 显示出来,而这里的位置更低;所有代码是: #include "pieview.h"#include <QPainter> PieView::PieView(QWidget *parent) : QAbstractItemView(parent){} void PieView::paintEvent(QPaintEvent *){ QPainter painter(viewport()); painter.setPen(Qt::black); int x0=40; int y0=250; //y坐标轴 painter.drawLine(x0,y0,40,30); painter.drawLine(38,32,40,30); painter.drawLine(40,30,42,32); painter.drawText(20,30,tr("销售数量")); painter.drawText(20,1*50,tr("%1").arg((1*50))); painter.drawText(20,2*50,tr("%1").arg((2*50)));
//x 坐标轴 painter.drawLine(x0,y0,540,250); painter.drawLine(538,248,540,250); painter.drawLine(540,250,538,252); painter.drawText(545,250,tr("品牌")); int pos=x0+20; int row; for(row=0;row<model()->rowCount(rootIndex());row++) { QModelIndex index=model()->index(row,0,rootIndex()); QString dep=model()->data(index).toString(); painter.drawText(pos,y0+20,dep); pos+=50; } int posN=x0+20; for(row=0;row<model()->rowCount(rootIndex());row++) { QModelIndex index=model()->index(row,1,rootIndex()); int sell=model()->data(index).toDouble(); int width=10; QModelIndex colorIndex = model()->index(row,0,rootIndex()); QColor color = QColor(model()->data(colorIndex,Qt::DecorationRole).toString()); if(selections->isSelected(index)) painter.setBrush(QBrush(color,Qt::Dense3Pattern)); else painter.setBrush(QBrush(color)); painter.drawRect(QRect(posN,y0-sell*10,width,sell*10)); QRegion regionM(posN,y0-sell*10,width,sell*10); RegionList<<regionM; posN+=50; }} void PieView::setSelectionModel(QItemSelectionModel *selectionModel){ selections = selectionModel;} QRegion PieView::itemRegion(QModelIndex index){ QRegion region; if (index.column() == 1) // 销售数量 region = RegionList[index.row()]; return region;} QModelIndex PieView::indexAt(const QPoint &point) const{ QPoint newPoint(point.x(),point.y()); QRegion region; foreach(region,RegionList) // 销售数量 列 { if (region.contains(newPoint)) { int row = RegionList.indexOf(region); QModelIndex index = model()->index(row,1,rootIndex()); return index; } } return QModelIndex();} QRect PieView::visualRect(const QModelIndex &index) const{}void PieView::scrollTo(const QModelIndex &index, ScrollHint hint){}QModelIndex PieView::moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers){}int PieView::horizontalOffset()const{}int PieView::verticalOffset()const{}bool PieView::isIndexHidden(const QModelIndex &index) const{}void PieView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command){}QRegion PieView::visualRegionForSelection(const QItemSelection &selection) const{}
|