Qt学习例子10——Compsegraphicsitem
2011-04-08 13:15
393 查看
Compsegraphicsitem工程主要是介绍QGraphicsItem的应用,用于组织绘图结构,代码如下:
代码是依照此图设计的:
![](http://s6.sinaimg.cn/middle/67ab77e14a060e5058a75&690)
程序运行的效果如下:
![](http://s4.sinaimg.cn/middle/67ab77e14a060e698a263&690)
#include <QtGui/QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsEllipseItem>
QGraphicsItem *addSmiley() {
QPen thickPen(Qt::black);
thickPen.setWidth(2);
// add face
QGraphicsEllipseItem *face = new QGraphicsEllipseItem(QRect(-50, -50, 100, 100));
face->setPen(Qt::NoPen);
face->setBrush(Qt::yellow);
// enter your code here
// add eyes
QGraphicsEllipseItem *leftEye = new QGraphicsEllipseItem(QRect(-21, -37, 12, 24), face);
leftEye->setPen(QPen(Qt::black));
leftEye->setBrush(Qt::white);
QGraphicsEllipseItem *leftEyeBall = new QGraphicsEllipseItem(QRect(-16.5, -26.5, 3, 3),leftEye);
leftEyeBall->setPen(QPen(Qt::black));
leftEyeBall->setBrush(Qt::black);
QGraphicsEllipseItem *rightEye = new QGraphicsEllipseItem(QRect(9, -37, 12, 24), face);
rightEye->setPen(QPen(Qt::black));
rightEye->setBrush(Qt::white);
QGraphicsEllipseItem *rightEyeBall = new QGraphicsEllipseItem(QRect(14.5, -26.5, 3, 3),rightEye);
rightEyeBall->setPen(QPen(Qt::black));
rightEyeBall->setBrush(Qt::black);
// add smile
QPainterPath path;
path.arcMoveTo(QRectF(-33,-15,66,50),0);
path.arcTo(QRectF(-33,-15,66,50),-0,-180);
QGraphicsPathItem *smile=new QGraphicsPathItem(path,face);
//QGraphicsPathItem *smile=new QGraphicsPathItem(face);
smile->setPen(QPen(Qt::red));
return face;
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsView w;
QGraphicsScene scene;
w.setScene(&scene);
scene.addItem(addSmiley());
w.setRenderHint(QPainter::Antialiasing);
w.show();
return a.exec();
}
代码是依照此图设计的:
程序运行的效果如下:
相关文章推荐
- Qt学习笔记,再次分析EVA源码之后得出的结论-QListView,QListViewItem(Qt3);Q3ListView,Q3ListViewItem(Qt4)
- [Q学习]10 Qt事件系统——处理事件
- Qt学习例子2——CalculatorInterface
- Qt学习例子15——objectitem
- Qt多线程学习-用例子来理解多线程(转)
- Qt学习笔记,再次分析EVA源码之后得出的结论-QListView,QListViewItem(Qt3);Q3ListView,Q3ListViewItem(Qt4)
- Qt学习之解决QListWidgetItem有重叠时,点一下全部选中的问题
- Qt学习例子3——test
- Qt学习例子15——objectitem
- Qt GraphicsView框架中实现多个item之间的层次调整功能
- Qt学习 之 Socket通信(一个简单的例子)
- Qt学习之路_9(Qt中Item Widget初步探索)
- Qt GraphicsView框架中实现多个item之间的层次调整功能
- Vue.js学习 Item10 – 过渡与动画
- Qt多线程学习-用例子来理解多线程
- Qt学习 之 Socket通信(一个简单的例子)
- QT5.4 例子学习-01-Application Example
- QT学习之二:Qt命令模式下建立编译的第一个例子
- Qt学习例子4——Test2_1
- Qt学习笔记-----Graphics_View_Framework