gpt4 book ai didi

c++ - 如何通知最大长度溢出

转载 作者:行者123 更新时间:2023-11-30 03:19:28 24 4
gpt4 key购买 nike

有没有办法在执行默认处理程序之前连接信号?我正在寻找一种在 QLineEdit::textChanged 信号之前执行我的函数的方法,以执行有关最大长度限制的通知。

GTK+ 有 connect_before()、connect() 和 connect_after()。 Qt 中有类似的东西吗?

最佳答案

您可以使用 keyPressEvent 方法发出自定义信号。

#include <QtWidgets>

class LineEdit: public QLineEdit
{
Q_OBJECT
public:
using QLineEdit::QLineEdit;
signals:
void maxLengthSignal();
protected:
void keyPressEvent(QKeyEvent *event) override{
if(!event->text().isEmpty() && maxLength() == text().length())
emit maxLengthSignal();
QLineEdit::keyPressEvent(event);
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
LineEdit w;
QObject::connect(&w, &QLineEdit::textEdited, [](const QString & text){
qDebug()<< text;
});
QObject::connect(&w, &LineEdit::maxLengthSignal, [](){
qDebug()<< "maxLength signal";
});
w.setMaxLength(10);
w.show();
return a.exec();
}
#include "main.moc"

关于c++ - 如何通知最大长度溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53695621/

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