• 10024阅读
  • 4回复

QGraphicsScene 与  QGraphicsitem 坐标问题 [复制链接]

上一主题 下一主题
离线yyqheaven
 
只看楼主 倒序阅读 楼主  发表于: 2010-07-13
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
关键词: QT4
定义一个类
class MenuItem :public QObject,public QGraphicsItem


class MyView:public QGraphicsView
{
   GraphicsScene  *m_scene;


然后在 Myview 的构造函数中
                MenuItem *item4 = new MenuItem(QRect(10,-20,100,100));
      MenuItem *item1 = new MenuItem(QRect(-70,0,100,100));
               MenuItem *item3 = new MenuItem(QRect(80,0,100,100));
      MenuItem *item2 = new MenuItem(QRect(10,10,100,100));
    

      item4->SetZValue(0);
      item1->SetZValue(1);
      item3->SetZValue(1);
      item2->SetZValue(2);

      item4->setDisplayText("3");
      item1->setDisplayText("2");
      item3->setDisplayText("1");
      item2->setDisplayText("0");
    
      m_menuItems.push_back(item4);
               m_menuItems.push_back(item1);
      m_menuItems.push_back(item3);
      m_menuItems.push_back(item2);
      
    for ( int i = 0; i < m_menuItems.count(); i++)
    {
              m_scene->addItem(m_menuItems);
    }

我想问的是在GraphicsScene 坐标系统中 item1 ~item4 的rect 与 pos 值分别是多少。如何让 item的 pos 值转化为 scene 坐标系统的值。用(mapToScene 感觉不起作用)
离线dbzhang800

只看该作者 1楼 发表于: 2010-07-13
引用楼主yyqheaven于2010-07-13 20:56发表的 QGraphicsScene 与  QGraphicsitem 坐标问题 :
定义一个类
class MenuItem :public QObject,public QGraphicsItem


class MyView:public QGraphicsView
.......


没看太懂,你这些 MenuItem 放上去后,既没变形有没平移的,pos不都还是默认的(0,0)么?
离线yyqheaven
只看该作者 2楼 发表于: 2010-07-14
我是想利用左右键来控制移动。假设要让 item4 QRect(10,-20,100,100); 移动到   item1 QRect(-70,0,100,100); 的位置上来,我是直接让 item4 的位置设置为 (-70,0)。可是运行起来不是那回事。还请大家帮忙!
离线dbzhang800

只看该作者 3楼 发表于: 2010-07-14
引用第2楼yyqheaven于2010-07-14 16:02发表的  :
我是想利用左右键来控制移动。假设要让 item4 QRect(10,-20,100,100); 移动到   item1 QRect(-70,0,100,100); 的位置上来,我是直接让 item4 的位置设置为 (-70,0)。可是运行起来不是那回事。还请大家帮忙!


首先,你对QGraphicsScene的坐标系统应该很不清楚。
其次,你给出的是自定义的Item (没有内部的实现,别人很难帮到你,比如说,内部有没有调用setPos等)

离线yyqheaven
只看该作者 4楼 发表于: 2010-07-15
问题已解决
快速回复
限100 字节
 
上一个 下一个