初学QT,然后就想写点什么,就写了个QT读写文件操作,写文件的时候,用进度条显示写的进度。
我选的是widget,在界面上拖了两个pushbutton,一个textedit,一个pushbutton是读文件,一个是写文件,
读文件用的是QT的QTextStream
QFile f(QApplication::applicationDirPath()+"/test");
if(!f.open(QIODevice::ReadOnly))
return;
QTextStream stream(&f);
while(!stream.atEnd())
{
strcont += stream.readLine();
}
f.flush();
f.close();
写文件其实跟读文件差不多:
num = strcont.length();
QFile f(QApplication::applicationDirPath()+"/test");
if(!f.open(QIODevice::WriteOnly))
qDebug()<<"===================";
QTextStream stream(&f);
stream<<strcont;
f.close();
之所以定义一个num 是为了写文件的时候,用进度条显示用的,
初始化一个进度条,定义一个startProgress()方法,将它和写的按钮连接
connect(ui->WBtn,SIGNAL(clicked()),this,SLOT(startProgress()));
QT里面的信号和槽的确好用,能将一个click事件,连接宁外一个事件。
进度条有两种,我是用的QProgressDialog
startProgress方法实现 :
void Widget::startProgress()
{
QProgressDialog progressDlg(this);
QFont font("ZYSong18030",12);
progressDlg.setFont(font);
progressDlg.setWindowTitle("please wait!!!");
progressDlg.setLabelText(tr("正在赋值。。。。"));
progressDlg.setCancelButtonText(tr("取消"));
progressDlg.setRange(0,num);
for(int i=1;i<num;i++)
{
progressDlg.setValue(i);
if(progressDlg.wasCanceled())
return;
}
}
很简单 的,一看就能懂。
效果图:
我也是刚学QT,期望和大家一起进步,谢谢!!!