自己写个类封装一下QString即可
myqstring.h
#ifndef MYQSTRING_H
#define MYQSTRING_H
#include <QObject>
#include <QString>
class MyQString: public QObject/*,public QString*/
{
Q_OBJECT
private:
QString baseStr;
public:
MyQString();
void MyAppend(QString str){
baseStr.append(str);
if(str.length() > 0){
emit lengthChanged(baseStr);
}
}
void Myclear(){
baseStr = "";
emit lengthChanged(baseStr);
}
QString getQString(){
return baseStr;
}
signals:
void lengthChanged(QString);
};
#endif // MYQSTRING_H
myqstring.cpp
#include "myqstring.h"
MyQString::MyQString(){
baseStr = "";
}
测试代码:
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include "ui_mainwindow.h"
#include "myqstring.h"
class MainWindow : public QMainWindow, private Ui::MainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
public slots:
void on_MyString_LengthChanged(QString);
private:
MyQString *myStr;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "myqstring.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
myStr = new MyQString();
connect(myStr,SIGNAL(lengthChanged(QString)),this,SLOT(on_MyString_LengthChanged(QString)));
myStr->MyAppend("Chinese ");
myStr->MyAppend("do not ");
myStr->MyAppend("give ");
myStr->MyAppend("in ");
myStr->MyAppend("to ");
myStr->MyAppend("HM,Nike");
myStr->Myclear();
}
void MainWindow::on_MyString_LengthChanged(QString str){
qDebug()<< myStr->getQString();
}
结果
"Chinese "
"Chinese do not "
"Chinese do not give "
"Chinese do not give in "
"Chinese do not give in to "
"Chinese do not give in to HM,Nike"
""
复制不易,点个赞再走吧!