qt中提供了QGphicsView,QGraphicsScene,QGraphicsItem,QGraphicsPixmapItem是QGraphicsItem的子类 分辨创建它们的实例:view,scene ,item,然后通过各自的方法scene->addItem(item);view->setScene(scene);就能够达到类似下图的效果,想要进一步定制,则要继承QGraphicsItem或QGraphicsPixmapItem myscene.h与某与scene.cpp是定义了类MyScene,继承自QGraphicsScene,我的目的是要获取其鼠标事件 nodeui.h与nodeui.cpp是定义了类NodeUI,继承自QGraphicsPixmapItem (QGraphicsSceneMouseEvent *event) { releasePos = event->scenePos(); } 再看nodeui.h与nodeui.cpp,在原来的QGraphicsPixmapItem 基础上又假如了点自己的东西 #ifndef NODEUI_H #define NODEUI_H #include <QGraphicsPixmapItem> #include <QGraphicsItem
self.filename) frame = QImage(svpath) pix = QPixmap.fromImage(frame) item = QGraphicsPixmapItem
QDialogButtonBox, QFileDialog, QFontComboBox, QGraphicsItem, QGraphicsPixmapItem dialog = TextItemDlg(self, self.parentWidget()) dialog.exec_() class GraphicsPixmapItem(QGraphicsPixmapItem ): #像素图图形项 def __init__(self,pixmap): super(QGraphicsPixmapItem, self).
当前支持常见的图元类型包含: QGraphicsRectItem # 矩形 QGraphicsTextItem # 文字 QGraphicsLineItem # 线段 QGraphicsPathItem # 路径 QGraphicsPixmapItem
pScene); //使用我们的图像初始化一个Item QImage srcImage("C:\\Users\\Administrator\\Pictures\\Laner\\Laner.png"); QGraphicsPixmapItem * pItem = new QGraphicsPixmapItem(); //设置元素可以选中和拖动 pItem->setAcceptHoverEvents(true); pItem->setFlags
self.viewer.setScene(QtGui.QGraphicsScene()) self.viewer.scene().addItem(QtGui.QGraphicsPixmapItem
window.setStyleSheet( #QSS 加载图片 "QWidget{border-image:url(image.jpg)}")window.show()app.exec_()图片③ 使用QGraphicsPixmapItem ([])view = QGraphicsView()scene = QGraphicsScene()pixmap = QPixmap("image.jpg") # 通过文件路径加载图像item = QGraphicsPixmapItem
这里的数据传递很巧妙,注意体会; 数据有效性检查利用QIntValidator类自动检查,省去不少功夫(我当前限制宽为1~30,高为1~19,雷数不能超过“宽*高”的一半); 2.图形框架及渲染 QGraphicsPixmapItem
具体到代码中,有以下几个类需要特别关注: QGraphicsScene Qt 图形场景类 QGraphicsItem Qt 的图形元素基类 QGraphicsPixmapItem 有 Pixmap 的图形元素类
self.image_list: return pixmap = QPixmap(self.image_list[self.current_index]) item = QGraphicsPixmapItem QPixmap(path) if pixmap.isNull(): raise ValueError("QPixmap 无法加载图片") item = QGraphicsPixmapItem
另外,我们可以创建QGraphicsPixmapItem并使用addItem方法将其添加到场景中,如下所示: QGraphicsPixmapItem *item = new QGraphicsPixmapItem(pixmap); scene.addItem(item); 在这两种情况下,都不必担心项目指针,因为在调用addItem时场景将拥有它的所有权 在上一示例中已经使用过的addPixmap函数可用于将图像添加到场景,并且它返回指向QGraphicsPixmapItem类的指针。 您可以简单地将以下代码段添加到dropEvent函数中,因此将具有以下内容: QGraphicsPixmapItem *item = new QGraphicsPixmapItem(pixmap 例如,我们可以使用它来存储设置为QGraphicsPixmapItem的图像的路径,或者存储与特定项目相关的任何其他类型的信息。
为了解决这个问题,我们在MainWindow中添加了一个新的私有成员字段QGraphicsPixmapItem *currentImage来保存imageScene->addPixmap的返回值,并在MainWindow QString currentImagePath; QGraphicsPixmapItem *currentImage; showImage方法和openImage插槽的实现与我们在ImageViewer
QGraphicsView类的橡皮筋功能轻松实现对象选择: private: QCvMeanShiftThread *meanshift; QGraphicsPixmapItem