1.前言
Qt中提供的Item未必能够满足需要,因此有必要实现自定义的QGraphicsItem对象。与QPushButton一样,如果发生鼠标事件,那么为了更换被点击按钮的图像,可以使用paint实现用户自定义QGraphicsItem。
2.一个简单的实验
#include <QtWidgets/QApplication> #include "MyItem.h" #include <qgraphicsscene.h> #include <qgraphicsview.h> #define WIDTH 300 #define HEIGHT 200 int main(int argc, char *argv[]) { QApplication a(argc, argv); QGraphicsScene scene; MyItem* item; item = new MyItem("button.png","button-active"); item->setPos(100,100); scene.addItem(item); QGraphicsView view; view.setScene(&scene); view.setFrameShape(QFrame::NoFrame); view.setHorizontalSc