【发布时间】:2015-09-15 11:16:39
【问题描述】:
使写入QLineEdit 小部件的文本动态显示在已经包含一些文本的QTextEdit 中的过程是什么?
例如,假设QLineEdit 要求一个写“John”的名字。是否可以在包含以下内容的QTextEdit 中实时显示:
名字是 + textFromQLineEdit + ,24岁 ?
显示的文本必须动态考虑对QLineEdit 所做的更改,以便用户无需按下按钮或按下回车即可看到他/她的名字出现。
以下是使用来自QLineEdit 的信号textChanged() 和来自QTextEdit 的插槽setText() 将两个小部件相互连接的最少代码(不允许在之前添加一些文本在 QLineEdit) 的文本之后:
#include <QLineEdit>
#include <QVBoxLayout>
#include <QGroupBox>
#include <QTextEdit>
#include <QApplication>
class SmallWindow : public QWidget
{
Q_OBJECT
public:
SmallWindow();
private:
QLineEdit *nameLine;
QTextEdit *textBox;
};
SmallWindow::SmallWindow() : QWidget()
{
setFixedSize(300,250);
QLineEdit *nameLine = new QLineEdit;
QTextEdit *textBox = new QTextEdit;
QWidget::connect(nameLine,SIGNAL(textChanged(QString)),textBox,SLOT(setText(QString)));
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(nameLine);
layout->addWidget(textBox);
QGroupBox *group = new QGroupBox(this);
group->setLayout(layout);
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
SmallWindow window;
window.show();
app.exec();
}
#include "main.moc"
应该怎么做才能保持QLineEdit文本前后的文本就位并实时更新QTextEdit框?
【问题讨论】:
标签: c++ qt qtextedit qlineedit