qt的控件不是都有信号的嘛
比如lineedit 也就是你这个文本框 就有如下信号 你对文本的更改他都会发出相应的信号 你写个槽函数拿到文本的数据不就可以保存了吗 他只要响应就代表你输入了内容
Signals
void
cursorPositionChanged(int oldPos, int newPos)
void
editingFinished()
void
inputRejected()
void
returnPressed()
void
selectionChanged()
void
textChanged(const QString &text)
void
textEdited(const QString &text)
举个例子 下面是一个lineedit的信号
:
通过textChanged判断输入的数据 如果数据不符合你的要求 则相应的处理
//保存到文件里面
//这里创建一个文件初始化格式
QSettings *settings = new QSettings(你的文件名.ini, QSettings::IniFormat);
//这个就是文件里面的编码方式
settings->setIniCodec("UTF-8");
//此处为所有数据项组名 比如你所有的数据都是和测试相关 那就写Test
//就好了 没有的不写这一句都可以 这个没有下面那个end就没有
settings->beginGroup(QString::fromLocal8Bit("你数据组名"));
//此处加你的数据 有多少加多少
//此处保存数据项
settings->setValue(QString::fromLocal8Bit("数据名"),数据);
settings->endGroup();
把界面文本框写入文件可以这么写:
QFile file(文件名);
if (file.open(QIODevice::ReadWrite)) {
QTextStream stream(&file);
stream << QTextEdit1->toPlainText();
}
至于界面验证,可以编写信号槽函数,选择框用selectionChanged(),文本框用textChanged()搭配QRegExpValidator,比VB还好用。