gpt4 book ai didi

c++ - Qt 槽和信号。获取插槽接收器对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:12:49 38 4
gpt4 key购买 nike

我有一个 QLineEdit,我想将其连接到 QLabel,以便根据输入的文本的有效性。这样做时我遇到了两个问题。

QLineEdit *text = new QLineEdit(this);
layout->addWidget(text, rowno, 0);
QLabel *button = new QLabel(this);
button->setStyleSheet("QLabel { background-color : green; color : white; }");
button->setAlignment(Qt::AlignCenter);
button->setText("OKAY");
QObject::connect(text, SIGNAL(textEdited(const QString &)), button, SLOT(CheckValidity(const QString &)));

这不会将 QLineEdit 中所做的任何更改连接到我的自定义插槽。我不知道为什么!同样在自定义插槽中,我想根据传递的 QString 更改标签的背景颜色。我如何获得标签的引用?它作为信号的接收器存在,但我想不出一种方法来引用它。

最佳答案

CheckValidity 不是 QButton 的插槽,它是在您自己的类中定义的自定义插槽(我假设是这样,因为您没有指定它)。

因此,将最后一行更改为:

QObject::connect(text, SIGNAL(textEdited(const QString &)), this, SLOT(CheckValidity(const QString &)));

如果你想知道发送者对象,使用qobject_cast:

QLabel *sender_label = qobject_cast<QLabel*> (sender ());

关于c++ - Qt 槽和信号。获取插槽接收器对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38186754/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com