文件操作
{
ui->setupUi(this);
//编码格式类
QTextCodec *codec=QTextCodec::codecForName("gbk");
//点击选取文件按钮,弹出对话框
connect(ui->pushButton,&QPushButton::clicked,[=](){
QString path= QFileDialog::getOpenFileName(this,"打开文件","D:\\");
//将路径放到lineEdit中
ui->lineEdit->setText(path);
//读取内容 放到textEdit中
QFile file(path);
//设置打开方式
file.open(QIODevice::ReadOnly);
QByteArray arry= file.readAll();
//将读取到的数据放入textEdit中
ui->textEdit->setText(arry);
//文件关闭
file.close();
//写文件
file.open(QIODevice::Append);
file.write("hello world");
file.close();
//QFileInfo文件信息类
QFileInfo info(path);
qDebug()<<"Size:"<<info.size()<<"last name:"<<info.suffix();
qDebug()<<"created date:"<<info.created().toString("yyyy/mm/dd hh:mm:ss");
});
}
绘图
#include "widget.h"
#include "ui_widget.h"
#include<QPainter>
#include<QPushButton>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QPushButton *btn=new QPushButton(this);
btn->setText("move");
btn->move(500,500);
connect(btn,&QPushButton::clicked,[=](){
update();
});
}
Widget::~Widget()
{
delete ui;
}
/*
void Widget::paintEvent(QPaintEvent*){
//实例化画家对象 this指定绘图的设备
QPainter painter(this);
//设置画笔
QPen pen(QColor(255,0,0));
//设置画笔宽度
pen.setWidth(3);
//让画家使用画笔
painter.setPen(pen);
//设置画刷
QBrush brush(QColor(0,255,0));
//让画家使用画刷
painter.setBrush(brush);
//画线
painter.drawLine(QPoint(0,0),QPoint(100,100));
//画圆
painter.drawEllipse(QPoint(100,100),50,50);
//画矩形
painter.drawRect(50,50,50,50);
//画文字
painter.drawText(QPoint(200,200),QString("hello world"));
painter.drawText(QRect(250,250,100,100),QString("hello world"));
}
*/
//高级设置
//void Widget::paintEvent(QPaintEvent*){
// QPainter painter(this);
// painter.drawRect(QRect(100,100,100,100));
// //设置抗锯齿能力 效率低
// painter.setRenderHint(QPainter::Antialiasing);
// //移动画家
// painter.translate(100,100);
// painter.drawRect(QRect(150,0,100,100));
// //还原画家保存状态
// painter.restore();
// painter.drawRect(QRect(150,0,100,100));
//}
//利用画家画资源图片
void Widget::paintEvent(QPaintEvent*){
QPainter painter(this);
static int posX=0;
posX+=5;
if(posX>this->width()){
posX=0;
}
painter.drawPixmap(posX,0,QPixmap(":/img/dog.jpg"));
}
绘图2
#include "widget.h"
#include "ui_widget.h"
#include<QPainter>
#include<QPixmap>
#include<QImage>
#include<QPicture>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
/*
//Qixmap绘图设备 专门为平台做了显示优化
QPixmap pix(300,300);
pix.fill(Qt::white);
//声明画家
QPainter painter(&pix);
painter.setPen(QPen(Qt::green));
painter.drawEllipse(QPoint(150,150),100,100);
pix.save("C:\\Users\\Jing\\Pictures\\img\\pix.png");
*/
/*
//QImage绘图设备 可以对像素进行访问
QImage img(QSize(300,300),QImage::Format_RGB32);
img.fill(Qt::white);
QPainter painter(&img);
painter.setPen(QPen(Qt::red));
painter.drawEllipse(QPoint(150,150),100,100);
img.save("C:\\Users\\Jing\\Pictures\\img\\pix.png");
*/
//QPicture绘图事件 可以记录和重现绘图指令
QPicture pic;
QPainter painter;
painter.begin(&pic);//开始往pic上画
painter.setPen(QPen(Qt::cyan));
painter.drawEllipse(QPoint(150,150),100,100);
painter.end();
pic.save("C:\\Users\\Jing\\Pictures\\img\\pix.jx");
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *){
/*
QPainter painter(this);
//利用QImage对像素进行修改
QImage img;
img.load(":/img/dog.jpg");
//修改像素点
for(int i=50;i<100;i++){
for(int j=50;j<100;j++){
QRgb value=qRgb(255,0,0);//像素点类型的值
img.setPixel(i,j,value);
}
}
painter.drawImage(0,0,img);
*/
QPainter painter(this);
//重现QPicture的绘图指令
QPicture pic;
pic.load("C:\\Users\\Jing\\Pictures\\img\\pix.jx");
painter.drawPicture(0,0,pic);
}