C++编写Qt应用程序 如何实现交互效果:?

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 里面,编写代码获取文本框内容,并且设置给下面的即可。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/168682
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:c++ Qt & vs 常见错误解析
  • 除此之外, 这篇博客: C++(Qt)开发经验中的 5. Qt程序部署后,阴影等特效不起作用,甚至阴影变成黑色背景: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    +	检查屏幕色深:根据官方文档中的说明,屏幕色深低于16-bits的话是特效是不起作用的
    +	如果是在Linux上,查看日志或控制台输出,观察是否有类似
    

    libGL.so.1: unable load to driver: s3g这样的输出,如有有,请检查显卡驱动,或自己程序发布时是否多带了一下系统的库,将程序多带的libstdc++.so* libX11* libxcb* libGL*都删掉可以解决此问题


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^