繁体   English   中英

Qt连接两个信号和一个插槽

[英]Qt connecting two signals and one slot

我有一个带有QLabel,QTextEdit和QPushButton的程序。

单击按钮时,我想将文本从LineEdit放置到Label。

我可以通过创建自己的插槽来做到这一点,但是可以使用Qt插槽吗?

我已经尝试过此代码,但是它不能按我的意愿工作...

this->connect(pushButton ,SIGNAL(clicked()), lineEdit, SIGNAL(textChanged(QString)), Qt::QueuedConnection);
t->connect(lineEdit, SIGNAL(textChanged(QString)) , label ,SLOT(setText(QString)), Qt::DirectConnection);

如果您需要强制用户按下QButton,以将他/她在QTextEdit中键入的文本“应用”到QLabel,则可能要检查插入文本的有效性,或使用该文本来实现某些目标或将其存储在变量中以备后用...因此您需要一个自定义插槽或自定义类。

相反,您可以将信号QTextEdit.textChanged(QString)连接到插槽QLabel.setText(QString),以便将在QTextEdit中键入的所有内容发送到QLabel,而无需按下按钮。

但是,一切都取决于您的目标。

这是我的处理方式:

connect(ui->pushbutton, SIGNAL(clicked()), this, SLOT(slot_pushbutton_clicked()))

然后在slot_pushbutton_clicked插槽中,

ui->label->setText(ui->lineEdit->text)

希望能帮助到你 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM