• 6994阅读
  • 3回复

重写mouseReleaseEvent,为什么不调用? [复制链接]

上一主题 下一主题
离线my253629725
 

只看楼主 倒序阅读 楼主  发表于: 2008-12-24
— 本帖被 XChinux 执行加亮操作(2009-01-03) —
我在对话框上放了个LineEdit,当我在LineEdit上按下鼠标左键的时候,没有调用该方法,而在该对话框的非控件的位置上按下鼠标左键的时候却调用了,不知道是为什么?
void Login::mousePressEvent(QMouseEvent *event){

    if(event->button() == Qt::LeftButton){
        QMessageBox::warning(nameEdit, tr("My Application"),
                                tr("The document has been modified.\n"
                                  "Do you want to save your changes?"),
                                QMessageBox::Save | QMessageBox::Discard
                                | QMessageBox::Cancel,
                                QMessageBox::Save);
        startPos = nameEdit->cursorPosition();
        if(nameEdit->hasFocus()){
            startPos = nameEdit->cursorPosition();
        }
    }
}
离线lazybone
只看该作者 1楼 发表于: 2008-12-25
你重写的是QWidget的mouseReleaseEvent,而不是LineEdit的,所以事件被替换成LineEdit的左键事件
离线my253629725

只看该作者 2楼 发表于: 2008-12-25
那请教怎样才能重写LineEdit的mouseReleaseEvent
我的对话框继承的是QDialog
离线gery_sunjian
只看该作者 3楼 发表于: 2008-12-25
QLineEdit 继承子QWidget, 之后重写mouseReleaseEvent
快速回复
限100 字节
 
上一个 下一个