按键事件:
void ParallaxHome::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Right)
{
m_naviBar->setPageOffset(+1);
printf("the right offset is %d\n",offset);
m_scene.addItem(Proxy_items[offset]);
Proxy_items[offset]->setPos(330,100);
Proxy_items[offset]->setZValue(2);
Proxy_items[offset-1]->close();
++offset;
}
else if (event->key() == Qt::Key_Left)
{
m_naviBar->setPageOffset(-1);
m_scene.addItem(Proxy_items[offset]);
Proxy_items[offset]->setPos(330,100);
Proxy_items[offset]->setZValue(2);
Proxy_items[offset+1]->close();
--offset;
}
else if((event->key() == Qt::Key_Space)
{
Proxy_items[offset]->setFocus();
}
}
构造函数:
ParallaxHome::ParallaxHome():QGraphicsView(),m_pageOffset(0)
{
setRenderHint(QPainter::Antialiasing, true);
setBackgroundBrush(QPixmap(":/images/bottom.png"));
setupScene();
setScene(&m_scene);
mytimeid=startTimer(1000);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉滑动条
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setFrameShape(QFrame::NoFrame);
setWindowTitle("Parallax Home");
num=0;
offset=1;
}
void ParallaxHome::setupScene()
{
for (int i=0;i<8;i++)
{
proxy = new QGraphicsProxyWidget;
Proxy_items<<proxy;
}
m_naviBar = new NaviBar;
m_scene.addItem(m_naviBar);
m_naviBar->setZValue(2);
m_d_tv = new d_tv;
Proxy_items[0]->setWidget(m_d_tv);
m_scene.addItem(Proxy_items[0]);
Proxy_items[0]->setPos(330,100);
Proxy_items[0]->setZValue(2);
m_epg = new epg;
Proxy_items[1]->setWidget(m_epg);
m_set = new set;
Proxy_items[2]->setWidget(m_set);
m_set = new set;
Proxy_items[3]->setWidget(m_set);
m_user = new user;
Proxy_items[4]->setWidget(m_user);
m_cast = new cast;
Proxy_items[5]->setWidget(m_cast);
m_game = new game;
Proxy_items[6]->setWidget(m_game);
m_demand = new demand;
Proxy_items[7]->setWidget(m_demand);
m_scene.setItemIndexMethod(QGraphicsScene::NoIndex);
}
另外:我是新手,呵呵