赞
踩
1、自定义控件
1、创建一个自定义控件
2、在要提升的控件身上右键->提升为。
3、对话框 – 添加类(自定义类的名字)->提升
2、绘图和设备
1>画家类: QPainter
QPainter 设置绘图设备
1、构造函数的参数 ->QPainter p(绘图设备)
2、在当前窗口中画图:
重写paintEvent()函数
2> 绘图设备
1、QPixmao p;
p.load(路径)—加载图片
a、专门为图像再屏幕上的显示做了优化、依赖于平台
b、主要应用于平台上的图像显示,在不同的平台拥有相同的效果
2.QBitmap
是QPixmap的一个子类 只显示黑白色。
3.QImage
a、使用独立于硬件的绘制系统,专门为图像的像素级访问做了优化
b、可以在多线程中使用
c、可以修改图片的任何一个像素值
4.QPicture–二进制文件
a、记录和重现QPainter的各条指令
b、与平台无关
3、QPixmap和QImage直接的相互转换 QPixmap
1、QPixmap->QImage: QPixmap::toImage()
2、QImage->QPixmap::fromImage()[static]
4、手动更新窗口函数:
update();
打开指定文件并且显示在指定窗口:
添加如下代码:
#include <QFile> #include <QFileDialog> #include <QMessageBox> #include <QTextCodec> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); connect(ui->selcetFile,&QPushButton::clicked,this,[=]() { QString FileName = QFileDialog::getOpenFileName(this,"open file","d:\\"); if(FileName.isEmpty()==true) { QMessageBox::warning(this,"warning","select file failed"); return ; } ui->filePath->setText(FileName); //创建文件对象 //默认读取文件格式:utf8 QFile file(FileName); QTextCodec *code = QTextCodec::codecForName("gbk"); //指定打开方式 bool isOk = file.open(QFile::ReadOnly); if(isOk == false) { QMessageBox::critical(this,"ERROR","file open failed"); return; } //读文件 QByteArray array = file.readAll(); //显示到文本框 ui->textEdit->setText(array); ui->textEdit->setText(code->toUnicode(array)); //关闭文件 file.close(); }); }
如何用readline判断读到了最后一行:
//读文件
QByteArray array;
while (file.atEnd())
{
array += file.readLine();
}
写文件的三种方式:
char buf[128]={0};
file.write(QString("Hello world").toUtf8());
file.write(buf,strlen(buf));
file.write(buf);
QFile f("aaa.txt");
f.open(QFile::WriteOnly);
QTextStream txt(&f);
//写文件
txt << QString("hello world")<<123456;
f.close();
QString buf1;
f.open(QFile::ReadOnly);
txt.setDevice(&f);
txt>>buf1;
qDebug()<<buf1.toUtf8().data();
打印的类型:
QFile f("aaa.txt");
f.open(QFile::WriteOnly);
QDataStream ds(&f);
//写文件
ds << QString("hello world")<<123456;
f.close();
QString buf1;
int number;
f.open(QFile::ReadOnly);
ds.setDevice(&f);
ds>>buf1>>number;
qDebug()<<buf1.toUtf8().data()<<number;
打印的类型:
复习:QFile f;
1、f.setFileName(stringpathname);
2、打开文件 open(QFile::ReadOnly)
char buf[111];
3、读文件 read(char *buf,int size);
QByteArray array =readAll();
while(file.atEnd()==false)
QByteArray line =readLine();
4、close();
5、默认格式为 utf8
文件流操作
方式1:
QFile f;
QTextStream stream(&f);
方式2:
QTextStream stream;
stream.setDevice(&f);
stream <<“aaaaaaf”;写入设备中
stream>>str; 读到内存中
QDataStream ds(&f);
QTextStream stream(&f);
stream.setDevice(&f);
//写数据
ds << QString(“hello world”)<<123456;
ds>>string>>number>>QImage;
QDataStream sa(&array,QIODevice::ReadWrite);
sa<<image;
添加如下头文件#include <QFileInfo>
参数为文件名。
包含如下头文件#include <QDateTime>
打印文件字节大小。打印文件路径。打开文件名称。显示最后修改的日期。
QFileInfo info("D:\\mypic.jpg");
qDebug()<<"file size :"<<info.size();
qDebug()<<"file path :"<<info.path();
qDebug()<<"file path :"<<info.fileName();
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。