Qt中的emit

来源:互联网 发布:舒适达 知乎 编辑:程序博客网 时间:2024/06/06 12:49

      看下面的代码:

signals:    void findPrevious(const QString &str, Qt::CaseSensitivity cs);  private slots:    void findClicked();    void enableFindButton(const QString &text);  void FindDialog::findClicked()    Qt::CaseSensitivity cs = caseCheckBox->isChecked() ? Qt::CaseInsensitive : Qt::CaseSensitive;  {    if(backwardCheckBox->isChecked()) {    emit findPrevious(text, cs);    }    else {    void findNext(const QString &str, Qt::CaseSensitivity cs);    emit findNext(text, cs);    }  }  
    在这段代码中,emit是如何起作用的?

    emit是将信号findNext或信号findPrevious发射出去;
    tr是Qt中为了国际化而使用的。

    说白了,就是调用findPrevious或者findNext信号对应的槽函数,emit之前,在某个地方,肯定有connect把信号和槽进行关联,关联了之后,emit某个信号,就相当于调用这个信号connect时所关联的槽函数,就这么简单而已。
    tr()是为了支持多语言多种字符编码而实现,可以正确显示中文等非assci编码字符

    emit啥事也不干,是给程序员看的

    emit是发出信号 对应的是接收信号

    在这之前 应该有QObject::connect(*FindDialog, SIGNAL(), *receiver, SLOT()) 类似的句子

    QString text = lineEdit->text();  
   调用emit ..后,对应的SLOT里面的函数就会被调用

原创粉丝点击