有条件的信号和槽

Posted

技术标签:

【中文标题】有条件的信号和槽【英文标题】:signals and slots with a condition 【发布时间】:2017-04-29 15:36:50 【问题描述】:

我有一个带有 QLineEdit_1 的 mainwindow.ui 和带有多个 QLineEdit 小部件的 secondWindow.ui,简而言之,我想做一个条件,即在 QLineEdit_1 中输入某个数字时会导致某些 QLineEdit 小部件上的文本输出为“null”,其余部分仍为空白。

实现上述目标的主要步骤是什么 如果也有人能引导我找到一个类似的例子,那就太好了 谢谢。

【问题讨论】:

【参考方案1】:

听起来您正在搜索信号槽连接:http://doc.qt.io/qt-5/signalsandslots.html

在您的情况下,请听 QLineEdit_1 的 textChanged() 并在例如创建一个插槽secondWindow.ui-class,您可以根据需要设置其他行编辑:

connect(QLineEdit_1, &QLineEdit::textChanged, 
        PointerToSecondWindow, &secondWindow::yourSlot);

// In secondWindow.cpp
void secondWindow::yourSlot(const QString &text) 
    // Do with text whatever you like and set the
    // other line edits.

【讨论】:

如果我因为我的无知而惹恼了任何人,请原谅我正在努力学习......所以我应该把连接线放在 mainwindow.cpp 中正确吗?并将指向第二个窗口的指针用作“secondWindow *secondwindow”,例如它应该在 mainwindow.h 的公共部分中正确吗? @zakachoka 原则上是的。只要您有一个指向 a) 发出信号的有问题的行编辑和 b) 指向包含该插槽的对象的指针,您就可以将 connect 语句放在任何您喜欢的位置。如果指向插槽对象的指针是公共的还是私有的,则无关紧要。欢迎您继续学习和提问。干杯。 非常感谢您的回复,我的 if 语句有问题,因为我无法将两个窗口中的所有 QLineEdit 都放在一个语句中?

以上是关于有条件的信号和槽的主要内容,如果未能解决你的问题,请参考以下文章

Qt信号和槽的问题

QT学习之信号和槽

4自定义信号和槽函数

QT信号和槽

Qt 信号和槽

简单理解信号和槽