C++编写Qt应用程序 如何实现交互效果:?
当在上面的单行文本框中输入内容时,文字同步显示在下面的单行文本框中?
参考GPT和自己的思路:您可以使用Qt中的信号与槽机制来实现上述交互效果。具体做法是,在第一个单行文本框中输入内容时,触发一个信号,然后在该信号所连接的槽函数中获取该文本框的内容,再将该内容设置到下面的单行文本框中即可。代码示例如下:
// 定义信号
signals:
void textChanged(const QString &text);
// 触发信号
void MainWindow::on_textEdit_textChanged()
{
emit textChanged(ui->textEdit->toPlainText());
}
// 连接槽函数
connect(this, &MainWindow::textChanged, ui->textEdit_2, &QLineEdit::setText);
这里假设第一个单行文本框是TextEdit控件,第二个单行文本框是LineEdit控件。在on_textEdit_textChanged()函数中触发textChanged信号,并且将TextEdit控件中的内容作为信号参数传递出去。然后在MainWindow类的构造函数中,将textChanged信号连接到LineEdit控件的setText槽函数上。这样,当TextEdit控件中输入内容时,LineEdit控件就会实时显示相同的内容了。
在上面一个文本框的 textChanged 里面,编写代码获取文本框内容,并且设置给下面的即可。
不知道你这个问题是否已经解决, 如果还没有解决的话:+ 检查屏幕色深:根据官方文档中的说明,屏幕色深低于16-bits的话是特效是不起作用的
+ 如果是在Linux上,查看日志或控制台输出,观察是否有类似
libGL.so.1: unable load to driver: s3g
这样的输出,如有有,请检查显卡驱动,或自己程序发布时是否多带了一下系统的库,将程序多带的libstdc++.so* libX11* libxcb* libGL*都删掉可以解决此问题