• 8441阅读
  • 9回复

Qt中各种类的纯虚函数怎么使用 举例说明下 [复制链接]

上一主题 下一主题
离线shaoshuai898
 

只看楼主 倒序阅读 楼主  发表于: 2011-09-30
如题  思路是继承 重写;但是形参里的event 要怎么整?


如图 我重写了一个Label 想实现点击label出现提示对话框
要怎么调用这个函数的呢? 直接KeyPressEvent( QMouseEvent *event )
求解释
离线jdwx

只看该作者 1楼 发表于: 2011-09-30
回 楼主(shaoshuai898) 的帖子
void QWidget::keyPressEvent ( QKeyEvent * event ) [virtual protected]//键盘按键事件
void QWidget::mousePressEvent ( QMouseEvent * event ) [virtual protected]//鼠标按键事件
上面两个函数是虚函数,不是纯虚函数。

发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线xuweistudy
只看该作者 2楼 发表于: 2011-09-30
重写鼠标按下事件

void  mousePressedEvent(QMouseEvent *event_)
{

        if(event_->button() ==  Qt::LeftButton)
}
离线xuweistudy
只看该作者 3楼 发表于: 2011-09-30
重写鼠标按下事件

void  mousePressedEvent(QMouseEvent *event_)
{
       QLabel:: mousePressedEvent(event_);
        if(event_->button() ==  Qt::LeftButton)
        {
                       emit  clickedLabel();
         }

}
接这个信号就可以了
离线tiankuodikon
只看该作者 4楼 发表于: 2011-09-30
这种事件函数是被系统自动调用的吧,不用手动调用的,就像C++的窗口消息映射差不多,不知道对楼主有没有用,呵呵
离线shaoshuai898

只看该作者 5楼 发表于: 2011-10-11
回 3楼(xuweistudy) 的帖子
嗯的  这个想法是要实现的  谢谢了的哈  不过4楼回答的是 我想知道的
离线shaoshuai898

只看该作者 6楼 发表于: 2011-10-11
回 4楼(tiankuodikon) 的帖子
对的 我自己饭了下资料 是这么回事 qt是像Mfc一样有消息循环的 机制 event都放在消息循环中了  3Q~~
离线shaoshuai898

只看该作者 7楼 发表于: 2011-10-11
回 1楼(jdwx) 的帖子
这个不是重点吧? 虚函数可以被重写滴
1. 虚函数与纯虚函数 在他们的子类中都可以被重写。它们的区别是:
(1)纯虚函数只有定义,没有实现;而虚函数既有定义,也有实现的代码。
(2)包含纯虚函数的类不能定义其对象,而包含虚函数的则可以。
2. 虚函数的引入主要是为了实现多态,这部分内容是c++的精髓。
离线jdwx

只看该作者 8楼 发表于: 2011-10-11
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线jorneyr

只看该作者 9楼 发表于: 2011-10-11
QLabel的事件处理大多数情况eventFilter更适合
快速回复
限100 字节
 
上一个 下一个