小编nik*_*_02的帖子

QRect中QMouseEvent的问题

OS :: win_xp_sp3

Qt的:: 4.6

可以在QRect中使用QMouseEvent吗?我有父小部件,里面是一些QLabel文本"状态不变".

此外,内部父窗口小部件是MyRect,它是从QRect派生的.

现在我想MouseEvent只在这个MyRect中运行.例如,如果我在MyRect上操作,则需要更改父窗口小部件中的文本.

例如:

class MyRect : public QRect  {
      public:
      MyRect(int x, int y, int w, int h, ParentWidget* parent)
            : QRect(x,y,w,h) 
            {
               itsParent = parent;
            }
      ~MyRect() {}

      protected:
      void mouseMoveEvent(QMouseEvent* event)  

      private:
      ParentWidget* itsParent

  };  

void MyRect::mouseMoveEvent(QMouseEvent* event)
{
    if(event->buttons() == Qt::LeftButton)
    {
        itsparent->label->setText("status changed");
    }

}
Run Code Online (Sandbox Code Playgroud)

什么都没发生

问题::是否可以像这样使用QMouseEvent(仅限QRect)?

c++ qt visual-studio-2008

2
推荐指数
1
解决办法
2311
查看次数

如何使关键字在 Qt::4.6 (C++) 中立即无延迟地工作?

操作系统:: win xp sp3。

Qt::4.6

我有一个游戏板类,其中有一些矩形。我为该矩形定义了 keyPressEvent,以便在屏幕上移动他。Key_A :: 矩形.moveToLeft 和 Key_D :: 矩形.moveToRight。问题是按键有延迟。当我释放一个键并按下另一个键时,需要一些时间才能开始工作。我检查了 Qt 在线文档,现在了解了这种效果,但现在不知道如何使这些键立即工作而不会在它们之间产生延迟?

代码片段:

//in Gameboard class    

ship = new QRect(x,y,w,h);

void Gameboard::keyPressEvent(QKeyEvent* event)
{
switch(event->key())  {

case Qt::Key_A :
{ 
    x = x-10;
    ship->moveTo(x,y);
    break; 
}

case Qt::Key_D :
{
    x = x+10;
    ship->moveTo(x,y);
    break; 
}


}



}
Run Code Online (Sandbox Code Playgroud)

c++ visual-studio-2008 qt4.6

2
推荐指数
1
解决办法
1312
查看次数

标签 统计

c++ ×2

visual-studio-2008 ×2

qt ×1

qt4.6 ×1