• 6320阅读
  • 3回复

[提问]为什么editingFinished()老发两次信号 [复制链接]

上一主题 下一主题
离线fzx374
 

只看楼主 倒序阅读 楼主  发表于: 2011-02-05
— 本帖被 XChinux 从 论坛管理区 移动到本区(2011-02-05) —
我编辑Qlineedit后,对数据验证,但总运行两次,为什么?
connect(linNo, SIGNAL(editingFinished()), this, SLOT(linNoValidate()));

bool frmAddCapital::linNoValidate()
{
    QString num = linNo->text();
    QSqlQuery query;
    query.exec("Select * From register Where 凭证号码 =" + num);
    if (query.next()) {
        labNo->setFocus();
        QMessageBox::critical(this, "错误","已有#" + num + "号凭证!");
        return true;
    }
    return false;
}
离线fzx374

只看该作者 1楼 发表于: 2011-02-05
回 楼主(fzx374) 的帖子
补充说明,以上在回车情况下,运行两次。用tab或者mouse切换到其它控件正常,运行一次。
离线pika_l
只看该作者 2楼 发表于: 2011-03-06
举个例子
如果按钮名字为xx
其槽被命名为on_xx_clicked()
则qt会自动搜索on_xx_clicked()的槽函数

如果你同样又设计了信号-槽,显然将会运行两回

不知你是不是这个意思
离线fzx374

只看该作者 3楼 发表于: 2011-03-07
我认为不是这个意思。
快速回复
限100 字节
 
上一个 下一个