QT5 视图坐标
来源:互联网 发布:linux cat 编辑:程序博客网 时间:2024/06/11 00:42
又出错了。。
main.obj:-1: error: LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall MyView::metaObject(void)const " (?metaObject@MyView@@UBEPBUQMetaObject@@XZ)
main.obj:-1: error: LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall MyView::qt_metacast(char const *)" (?qt_metacast@MyView@@UAEPAXPBD@Z)
main.obj:-1: error: LNK2001: 无法解析的外部符号 "public: virtual int __thiscall MyView::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyView@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
debug\myScene.exe:-1: error: LNK1120: 3 个无法解析的外部命令
这些错都是什么啊。。
我建立了一个继承自QWidget的类,基类是 QGraphicsView
然后生成了myview.h 自动加上了宏Q_OBJECT 所以就报那些错了。。 原理不懂呀
改完之后,记得清理项目!
myview.h
#ifndef MYVIEW_H#define MYVIEW_H#include <QGraphicsView>class MyView : public QGraphicsView{ // Q_OBJECT 只需把这里注释掉就行了public: explicit MyView(QWidget *parent = 0);protected: void mousePressEvent(QMouseEvent *event);signals:public slots:};#endif // MYVIEW_H
myview.cpp
#include "myview.h"#include <QMouseEvent>#include <QGraphicsItem>#include <QDebug>MyView::MyView(QWidget *parent) : QGraphicsView(parent){}void MyView::mousePressEvent(QMouseEvent *event){ QPoint viewPos = event->pos(); qDebug() <<"viewPos:" << viewPos; QPointF scenePos = mapToScene(viewPos); qDebug() << "scenePos:" << scenePos; QTransform transform; QGraphicsItem *item = scene()->itemAt(scenePos,transform); if(item) { QPointF itemPos = item->mapFromScene(scenePos); qDebug() << "itemPos:" << itemPos; }}
main.cpp
#include <QApplication>#include <QGraphicsScene>#include <QGraphicsRectItem>#include <QGraphicsItem>#include <QDebug>#include <QGraphicsView>#include "myitem.h"#include "myitem.cpp"#include "myview.h"#include "myview.cpp"int main(int argc,char *argv[]){ QApplication app(argc,argv); QGraphicsScene scene; // QGraphicsRectItem * item = new QGraphicsRectItem(0,0,100,100); MyItem *item = new MyItem; scene.addItem(item); item->setPos(10,10); QGraphicsRectItem *rectItem = scene.addRect(QRect(0,0,100,100), QPen(Qt::blue),QBrush(Qt::green)); rectItem->setPos(20,20); MyView view; view.setScene(&scene); view.setForegroundBrush(QColor(255,255,255,100)); view.setBackgroundBrush(QPixmap("../myScene/11.jpg")); view.show(); return app.exec();}
0 0
- QT5 视图坐标
- QT5 坐标系统
- 视图坐标系统
- IOS视图坐标
- 视图间坐标转换
- QT5 学习之路28---坐标系统
- Android 屏幕坐标/视图坐标/布局坐标三者间的关系
- Android视图坐标体系总结
- Opengl 坐标转换\视图变换
- 基于Qt5图形视图框架的“俄罗斯方块”
- 第七章、QT5图形视图框架
- 视图之间坐标点的转换
- 修改storyboard中视图的坐标
- 找到在根视图上的坐标
- Opengl三视图的坐标变换
- 视图框架自定义和坐标说明
- iOS 获取子视图在父视图中的坐标
- QT5实现贪吃蛇使用图形视图构架
- 不多言语的温淡女子。
- 《c++primer》第15章面对对象程序设计习题解答
- ubuntu虚拟机与mac os的文件共享
- C#中, 动态的将图片传递给ReportViewer中的报表. - 自动打印
- 分支判断与循环
- QT5 视图坐标
- 微信企业号对企业有什么帮助
- 华为测试 整形数组合并
- JSP九大内置对象详解
- nodejs安装
- 数据库——表——列
- Android 系统广播机制
- opengl中纹理 颜色怎么共存的问题
- php 加密页面