有条件的信号和槽
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 都放在一个语句中?以上是关于有条件的信号和槽的主要内容,如果未能解决你的问题,请参考以下文章