此工程在上个例子之上加上了信号和槽,通过下面的滑动条控制笑脸的大小
依据此图而作:
程序代码如下:
//main.cpp
#include <QtGui/QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QLayout>
#include <QSlider>
#include "smileyitem.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QGraphicsView *view = new QGraphicsView;
QGraphicsScene scene;
view->setScene(&scene);
SmileyItem *item = new SmileyItem;
scene.addItem(item);
item->setFlag(QGraphicsItem::ItemIsMovable);
QSlider *slider = new QSlider(Qt::Horizontal);
slider->setRange(0,100);
slider->setValue(item->smileSize());
QObject::connect(slider, SIGNAL(valueChanged(int)), item, SLOT(setSmileSize(int)));
QObject::connect(item, SIGNAL(smileSizeChanged(int)), slider, SLOT(setValue(int)));
QVBoxLayout *l = new QVBoxLayout(&w);
l->addWidget(view);
l->addWidget(slider);
view->setRenderHint(QPainter::Antialiasing);
w.show();
w.resize(600,400);
return a.exec();
}
//smileyitem.h
#ifndef SMILEYITEM_H
#define SMILEYITEM_H