当前位置: 首页 > news >正文

全国免费自学网站微博推广费用

全国免费自学网站,微博推广费用,做的好的大学生旅行有哪些网站好,商城网站建设需求一、文件 QFile QT提供了QFile类用于对文件进行读写操作,也提供了其他的两个类:文本流(QTextSream)和数据流(QDataStream) 文本流(QTextSream):用于对文本数据的处理&am…

一、文件 QFile

QT提供了QFile类用于对文件进行读写操作,也提供了其他的两个类:文本流(QTextSream)和数据流(QDataStream)

  • 文本流(QTextSream):用于对文本数据的处理,并且是以字为单位进行读/写
  • 数据流(QDataStream):用于对二进制数据的处理,并且是以字节为单位进行读/写

QFlie类:

1、对文件进行操作流程:
如何找到文件?--------使用文件对话框(QFileDialog),也可以直接使用QFile类去找到文件
2、打开文件

bool open(FILE *fh, QIODevice::OpenMode mode, QFileDevice::FileHandleFlags handleFlags = DontCloseHandle)
参数:FILE*fh文件指针
参数:QIODevice::OpenMode mode  //打开文件模式
参数:QFileDevice::FileHandleFlags handleFlags = DontCloseHandle //文件处理标志
---------------------------------------------------------------
bool open(int fd, QIODevice::OpenMode mode, QFileDevice::FileHandleFlags handleFlags = DontCloseHandle)
参数:int fd :文件ID
参数:QIODevice::OpenMode mode  //打开文件模式
参数:QFileDevice::FileHandleFlags handleFlags = DontCloseHandle //文件处理标志
---------------------------------------------------------------
virtual bool open(QIODevice::OpenMode mode) override
参数:QIODevice::OpenMode mode  //打开文件模式

3、读/写

  • 读取:
virtual qint64 readData(char *data, qint64 len) override
返回值:qint64=long long int
参数:char *data里读取数据
参数:qint64  读取数据的长度
-----------------------------
//按行读取
virtual qint64 readLineData(char *data, qint64 maxlen) override
返回值:qint64=long long int
参数:char *data里读取数据
参数:qint64  读取数据的最大长度
-----------------------------
QByteArray read(qint64 maxSize)
返回值:QByteArray:字节数组  //文本数据、网络相关的数据等等
参数:qint64 maxSize;最大能读取数据长度
-----------------------------
//读取文件里的所有数据
QByteArray readAll()
返回值:QByteArray:字节数组  //文本数据、网络相关的数据等等
-----------------------------
//按行读取
QByteArray readLine(qint64 maxSize = 0)
返回值:QByteArray:字节数组  //文本数据、网络相关的数据等等
参数:qint64 maxSize = 0  //读取一行数据
  • 写:
virtual qint64 writeData(const char *data, qint64 len) override
返回值:qint64,返回写入的字节个数
参数const char *data:待写入的字符串
参数qint64 len:待写入的字符串的长度
-----------------------------
qint64 write(const char *data, qint64 maxSize)
返回值:qint64,返回写入的字节个数
参数const char *data:待写入的字符串
参数qint64 len:待写入的字符串最大的长度
-----------------------------
qint64 write(const char *data)
返回值:qint64,返回写入的字节个数
参数const char *data:待写入的字符串
-----------------------------
qint64 write(const QByteArray &byteArray)
返回值:qint64,返回写入的字节个数
参数const QByteArray &byteArray:待写入的字节数组

4、关闭文件

virtual void close() override

QFileInfo类:

用于查看文件的基本信息的类

QDir absoluteDir() const  //获取文件的绝对目录
QString absoluteFilePath() const  //获取文件的绝对路径(包含文件)
QString absolutePath() const   //获取文件的绝对路径(不包含文件)
QString baseName() const  //  获取文件名称(不包含后缀)
QDateTime birthTime() const   //获取文件的创建时间
QString completeSuffix() const  //获取文件的后缀
QDir dir() const          //获取文件的目录
bool exists() const   //判断文件是否存在,true:存在  false:不存在
QString fileName() const //获取文件名(包好后缀)
QString filePath() const //获取文件的相对路径
QDateTime fileTime(QFile::FileTime time) const  //返回文件被修改的时间
bool isHidden() const  //判断文件是否被隐藏 true:隐藏  false:不隐藏
bool isReadable() const  //判断文件是否是只读   ture:只读  false:不只读
bool permission(QFile::Permissions permissions) const  //设置文件的许可证(权限)true:设置成功  false:设置失败
QDateTime lastRead() const  //获取最后一次读取文件的时间

QDir类:

用于管理目录

QString absoluteFilePath(const QString &fileName) const  //获取文件的路径
QString absolutePath() const  
QString canonicalPath() const
bool cd(const QString &dirName)  //切换文件路径
bool cdUp()  //切换到上一个路径:cd ../
bool mkdir(const QString &dirName) const  //创建目录或文件
bool mkpath(const QString &dirPath) const  //创建路径
bool rename(const QString &oldName, const QString &newName) //更新文件名称
bool rmdir(const QString &dirName) const   //移除目录,注意:目录或路径下所有文件都删掉(慎用)
bool rmpath(const QString &dirPath) const  //移除路径
QDir current()
QString currentPath()

二、事件及图形

  • 事件类型:键盘事件、鼠标事件、定时器事件、图形事件等等
  • 事件:事件的产生--------事件经过----------事件的结果,QT里提供了事件

QT事件的处理流程:

  • 事件的产生:
    • 有用户实现或者QT内部实现
    • 用户实现:键盘按下、释放,鼠标按下、释放等等
    • QT内部实现:定时器事件,图形事件等等
  • 事件的经过:
    • 事件的监听和派送
    • 事件的监听:应用程序(QApplication)调用.exec()监听产生的事件(事件循环系统)
    • 事件的派送:当应用程序(QApplication)监听到事件之后,就将该事件派送出去,派送给QEvent类。QEvent类收到QApplication派送的事件之后,就将事件分发给具体的事件处理对象
  • 事件的处理:
    • 收到QEvent类分发的事件,当前对象(基本的控件)接收该事件并进行处理
    • 事件处理函数(对事件进行处理):
      • mousePressEvent(QMouseEvent *event);//鼠标按下事件进行处理
      • mouseReleaseEvent(QMouseEvent *event);//鼠标释放事件进行处理
      • mouseMoveEvent(QMouseEvent *event) ;//鼠标移动事件进行处理

1、QT里提供的事件:

virtual void actionEvent(QActionEvent *event)  //当窗口状态行为被改变时,会执行该事件
virtual void changeEvent(QEvent *event)
virtual void closeEvent(QCloseEvent *event)  //当窗口被关闭时会执行该事件,
virtual void contextMenuEvent(QContextMenuEvent *event)
void create(WId window = 0, bool initializeWindow = true, bool destroyOldWindow = true)
void destroy(bool destroyWindow = true, bool destroySubWindows = true)
virtual void dragEnterEvent(QDragEnterEvent *event)
virtual void dragLeaveEvent(QDragLeaveEvent *event)
virtual void dragMoveEvent(QDragMoveEvent *event)
virtual void dropEvent(QDropEvent *event)
virtual void enterEvent(QEvent *event)
virtual void focusInEvent(QFocusEvent *event)
bool focusNextChild()
virtual bool focusNextPrevChild(bool next)
virtual void focusOutEvent(QFocusEvent *event)
bool focusPreviousChild()
virtual void hideEvent(QHideEvent *event)  //当窗口被隐藏时会执行该事件
virtual void inputMethodEvent(QInputMethodEvent *event)
virtual void keyPressEvent(QKeyEvent *event)  //当键盘按下的时候,会执行该事件
virtual void keyReleaseEvent(QKeyEvent *event)  //当键盘释放的时候,会执行该事件
virtual void leaveEvent(QEvent *event)
virtual void mouseDoubleClickEvent(QMouseEvent *event)
virtual void mouseMoveEvent(QMouseEvent *event)
virtual void mousePressEvent(QMouseEvent *event)
virtual void mouseReleaseEvent(QMouseEvent *event)
virtual void moveEvent(QMoveEvent *event)
virtual bool nativeEvent(const QByteArray &eventType, void *message, long *result)
virtual void paintEvent(QPaintEvent *event)
virtual void resizeEvent(QResizeEvent *event)
virtual void showEvent(QShowEvent *event)
virtual void tabletEvent(QTabletEvent *event)
virtual void wheelEvent(QWheelEvent *event)

2、事件过滤器:eventFilter

bool QObject::eventFilter(QObject *watched, QEvent *event)  //	QObject类中的时间过滤器
返回值:bool类型    当事件过滤成功,则返回true, 否则,返回false
参数1:QObject *watched       子窗口部件对象
参数2:QEvent *event       在子窗口部件对象上产生的事件的类型
-------------------------------------------------------------------
//使用:首先需要向指定的子窗口部件注册事件过滤器,之后即可使用事件过滤器
//注册事件过滤器:	
void installEventFilter(QObject *filterObj)  //注册事件过滤器

3、事件分发器:event

事件分发器原型:bool QObject::event(QEvent *e)  //事件分发器返回值:bool   分发事件的返回值参数:QEvent *e  //分发事件的类型

4、定时器

QT里定时器的实现两种方式:(1)实例化QTimer类(2)重写定时器事件void QObject::timerEvent(QTimerEvent *event)  //定时器事件

(1)实例化QTimer类

void start(std::chrono::milliseconds msec)  //开启定时器
void start(int msec)  //开启定时器并设置定时时间,单位:毫秒
void start()   //开启定时器
void stop()   //停止定时器
---------------------------------------------------------
信号:
void timeout()   //当定时器开启之后,到达设置的时间,触发该信号

(2)重写定时器事件

 void QObject::timerEvent(QTimerEvent *event)  //定时器事件int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer)  //开启定时器
int startTimer(std::chrono::milliseconds time, Qt::TimerType timerType = Qt::CoarseTimer) //开启定时器
返回值:int    返回定时器的ID号

5、绘画(绘图)事件

virtual void paintEvent(QPaintEvent *event)  //绘画事件

当应用程序界面刷新一次,就会自动调用paintEvent事件处理函数
调用update()函数,也可以实现调用paintEvent事件处理函数

QPainter类:
一支不带彩色的画笔,默认的颜色为黑色

void drawArc(const QRectF &rectangle, int startAngle, int spanAngle)
void drawArc(const QRect &rectangle, int startAngle, int spanAngle)
void drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)
void drawChord(const QRectF &rectangle, int startAngle, int spanAngle)
void drawChord(int x, int y, int width, int height, int startAngle, int spanAngle)
void drawChord(const QRect &rectangle, int startAngle, int spanAngle)
void drawConvexPolygon(const QPointF *points, int pointCount)
void drawConvexPolygon(const QPolygonF &polygon)
void drawConvexPolygon(const QPoint *points, int pointCount)
void drawConvexPolygon(const QPolygon &polygon)
void drawEllipse(const QRectF &rectangle)
void drawEllipse(const QRect &rectangle)
void drawEllipse(int x, int y, int width, int height)
void drawEllipse(const QPointF &center, qreal rx, qreal ry)
void drawEllipse(const QPoint &center, int rx, int ry)
void drawGlyphRun(const QPointF &position, const QGlyphRun &glyphs)
void drawImage(const QRectF &target, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
void drawImage(const QRect &target, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
void drawImage(const QPointF &point, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = ...)
void drawImage(const QPoint &point, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = ...)
void drawImage(const QRectF &rectangle, const QImage &image)
void drawImage(const QRect &rectangle, const QImage &image)
void drawImage(const QPointF &point, const QImage &image)
void drawImage(const QPoint &point, const QImage &image)
void drawImage(int x, int y, const QImage &image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor)
void drawLine(const QLineF &line)
void drawLine(const QLine &line)
void drawLine(int x1, int y1, int x2, int y2)
void drawLine(const QPoint &p1, const QPoint &p2)
void drawLine(const QPointF &p1, const QPointF &p2)
void drawLines(const QLineF *lines, int lineCount)
void drawLines(const QVector<QLineF> &lines)
void drawLines(const QPointF *pointPairs, int lineCount)
void drawLines(const QVector<QPointF> &pointPairs)
void drawLines(const QLine *lines, int lineCount)
void drawLines(const QVector<QLine> &lines)
void drawLines(const QPoint *pointPairs, int lineCount)
void drawLines(const QVector<QPoint> &pointPairs)
void drawPath(const QPainterPath &path)
void drawPicture(const QPointF &point, const QPicture &picture)
void drawPicture(int x, int y, const QPicture &picture)
void drawPicture(const QPoint &point, const QPicture &picture)
void drawPie(const QRectF &rectangle, int startAngle, int spanAngle)
void drawPie(int x, int y, int width, int height, int startAngle, int spanAngle)
void drawPie(const QRect &rectangle, int startAngle, int spanAngle)
void drawPixmap(const QRectF &target, const QPixmap &pixmap, const QRectF &source)
void drawPixmap(const QRect &target, const QPixmap &pixmap, const QRect &source)
void drawPixmap(int x, int y, int w, int h, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
void drawPixmap(int x, int y, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
void drawPixmap(const QPointF &point, const QPixmap &pixmap, const QRectF &source)
void drawPixmap(const QPoint &point, const QPixmap &pixmap, const QRect &source)
void drawPixmap(const QPointF &point, const QPixmap &pixmap)
void drawPixmap(const QPoint &point, const QPixmap &pixmap)
void drawPixmap(int x, int y, const QPixmap &pixmap)
void drawPixmap(const QRect &rectangle, const QPixmap &pixmap)
void drawPixmap(int x, int y, int width, int height, const QPixmap &pixmap)
void drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, QPainter::PixmapFragmentHints hints = ...)
void drawPoint(const QPointF &position)
void drawPoint(const QPoint &position)
void drawPoint(int x, int y)
void drawPoints(const QPointF *points, int pointCount)
void drawPoints(const QPolygonF &points)
void drawPoints(const QPoint *points, int pointCount)
void drawPoints(const QPolygon &points)
void drawPolygon(const QPointF *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolygon(const QPolygonF &points, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolygon(const QPoint *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolygon(const QPolygon &points, Qt::FillRule fillRule = Qt::OddEvenFill)
void drawPolyline(const QPointF *points, int pointCount)
void drawPolyline(const QPolygonF &points)
void drawPolyline(const QPoint *points, int pointCount)
void drawPolyline(const QPolygon &points)
void drawRect(const QRectF &rectangle)
void drawRect(int x, int y, int width, int height)
void drawRect(const QRect &rectangle)
void drawRects(const QRectF *rectangles, int rectCount)
void drawRects(const QVector<QRectF> &rectangles)
void drawRects(const QRect *rectangles, int rectCount)
void drawRects(const QVector<QRect> &rectangles)
void drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
void drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = ...)
void drawRoundedRect(const QRect &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = ...)
void drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText)
void drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText)
void drawStaticText(int left, int top, const QStaticText &staticText)
void drawText(const QPointF &position, const QString &text)
void drawText(const QPoint &position, const QString &text)
void drawText(int x, int y, const QString &text)
void drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)
void drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)
void drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect = nullptr)
void drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
void drawTiledPixmap(const QRectF &rectangle, const QPixmap &pixmap, const QPointF &position = QPointF())
void drawTiledPixmap(int x, int y, int width, int height, const QPixmap &pixmap, int sx = 0, int sy = 0)
void drawTiledPixmap(const QRect &rectangle, const QPixmap &pixmap, const QPoint &position = ...)

QPen类(画笔类):

画笔类,可以设置画笔颜色、画笔宽度等等

//1、可以设置画笔的颜色,线宽等信息
QPen  pen;
pen.setColor(QColor(255,0,0));//设置画笔的颜色
//设置线宽
pen.setWidth(6);
//设置画笔的样式
pen.setStyle(Qt::DotLine);
p.setPen(pen);

QBrush类(画刷类):

//2、可以填充颜色等信息
QBrush brush;//填充类
//设置填充的颜色
brush.setColor(QColor(255,0,0));
//设置填充样式
brush.setStyle(Qt::SolidPattern);
p.setBrush(brush);
p.drawRect(50,50,50,50);
p.drawLine(50,50,80,80);

三、多线程

为什么QT引入多线程概念?QT搭建界面的工具,使用多线程可以解决界面卡顿,响应不及时的情况
QT中新建的界面,实质上是一个主线程
如何实现(搭建)线程:

  • (1)继承自QThread类:新建一个类继承自QThread类,启动新建类运行
  • (2)moveToThread方法:新建一个类将该类放到线程中运行

文章转载自:
http://dinncoclivers.wbqt.cn
http://dinncooutrow.wbqt.cn
http://dinncopraemunire.wbqt.cn
http://dinncocoset.wbqt.cn
http://dinncomartian.wbqt.cn
http://dinncoarsenical.wbqt.cn
http://dinncoweathercondition.wbqt.cn
http://dinncomultimedia.wbqt.cn
http://dinncoprosyllogism.wbqt.cn
http://dinncomotherwort.wbqt.cn
http://dinncoist.wbqt.cn
http://dinncoalopecia.wbqt.cn
http://dinncodireful.wbqt.cn
http://dinncopsychal.wbqt.cn
http://dinncofoughten.wbqt.cn
http://dinncovilify.wbqt.cn
http://dinncoerven.wbqt.cn
http://dinncoprophetic.wbqt.cn
http://dinncosheepberry.wbqt.cn
http://dinncoultrastructure.wbqt.cn
http://dinncoelectrovalency.wbqt.cn
http://dinncocomedist.wbqt.cn
http://dinncosamara.wbqt.cn
http://dinncoevangelize.wbqt.cn
http://dinncoinp.wbqt.cn
http://dinncooutsoar.wbqt.cn
http://dinncoconstruction.wbqt.cn
http://dinncosid.wbqt.cn
http://dinncoquadriform.wbqt.cn
http://dinncogaedhelic.wbqt.cn
http://dinnconeurotomy.wbqt.cn
http://dinncobubbly.wbqt.cn
http://dinncogentlemanatarms.wbqt.cn
http://dinncoaerotropic.wbqt.cn
http://dinncotriquetral.wbqt.cn
http://dinncogeniculum.wbqt.cn
http://dinncoverisimilar.wbqt.cn
http://dinncoleonis.wbqt.cn
http://dinncodendrolite.wbqt.cn
http://dinncoepizeuxis.wbqt.cn
http://dinncoinvulnerable.wbqt.cn
http://dinncopas.wbqt.cn
http://dinncoantileukemia.wbqt.cn
http://dinncoshvartze.wbqt.cn
http://dinncoboult.wbqt.cn
http://dinncodurative.wbqt.cn
http://dinncocarmarthenshire.wbqt.cn
http://dinncouvdicon.wbqt.cn
http://dinncocairo.wbqt.cn
http://dinncovaluer.wbqt.cn
http://dinncotachyon.wbqt.cn
http://dinncothroughither.wbqt.cn
http://dinncothug.wbqt.cn
http://dinncoextracurial.wbqt.cn
http://dinncoyellow.wbqt.cn
http://dinncomacroglobulin.wbqt.cn
http://dinncodruidism.wbqt.cn
http://dinncointimately.wbqt.cn
http://dinncoinsufficience.wbqt.cn
http://dinncosomersault.wbqt.cn
http://dinncodoctoral.wbqt.cn
http://dinncovaccinee.wbqt.cn
http://dinncofiddleback.wbqt.cn
http://dinncobasophobia.wbqt.cn
http://dinncoballet.wbqt.cn
http://dinncoboldness.wbqt.cn
http://dinncoriverbank.wbqt.cn
http://dinncoknapper.wbqt.cn
http://dinncoacidophilus.wbqt.cn
http://dinncocorticotropin.wbqt.cn
http://dinncogreyhound.wbqt.cn
http://dinncoshovelhead.wbqt.cn
http://dinncohomoscedastic.wbqt.cn
http://dinncowe.wbqt.cn
http://dinncomatzoth.wbqt.cn
http://dinncorarely.wbqt.cn
http://dinncokentish.wbqt.cn
http://dinncoinnovationist.wbqt.cn
http://dinncoentozoon.wbqt.cn
http://dinncomakar.wbqt.cn
http://dinncofivefold.wbqt.cn
http://dinncobauson.wbqt.cn
http://dinncojitteriness.wbqt.cn
http://dinncodiplopia.wbqt.cn
http://dinncoleavings.wbqt.cn
http://dinncoportent.wbqt.cn
http://dinncosphenogram.wbqt.cn
http://dinncoenuresis.wbqt.cn
http://dinncohomozygosity.wbqt.cn
http://dinncomidwest.wbqt.cn
http://dinncochaldaic.wbqt.cn
http://dinncohooked.wbqt.cn
http://dinncononenzymic.wbqt.cn
http://dinncoincapacitator.wbqt.cn
http://dinncocardiosclerosis.wbqt.cn
http://dinncounclose.wbqt.cn
http://dinncodistinctness.wbqt.cn
http://dinncoetwee.wbqt.cn
http://dinncomixer.wbqt.cn
http://dinncoarrears.wbqt.cn
http://www.dinnco.com/news/7391.html

相关文章:

  • 带娃儿做的工作网站自媒体是如何赚钱的
  • 做糕点的网站网页设计作品集
  • 网站风格新冠咳嗽一般要咳多少天
  • 建筑公司经营范围大全重庆seo建站
  • 信誉好的南昌网站建设sem推广是什么意思
  • 用什么网站做海报郑州seo外包v1
  • sem营销新乡seo网络推广费用
  • 做冷库的网站政府免费培训面点班
  • 网站建设新手教程视频教程上海网站关键词排名优化报价
  • 网站建设是一个什么的过程网址解析ip地址
  • 九龙坡网站建设多少钱漯河网络推广哪家好
  • 六安企业网站seo多少钱关键词代做排名推广
  • 做网站基本东西网站优化设计的基础是网站基本要素及每个细节的优化
  • 做网站就上房山华网天下深圳品牌策划公司
  • centos wordpress 权限网络seo优化
  • 东莞网站建设代理商优化搜索关键词
  • 建设旅游网站的市场分析qq引流推广软件哪个好
  • 成都模板建站代理直接打开百度
  • 浙江建设人才网官网百度智能小程序怎么优化排名
  • 老年公寓网站模板东莞网络公司网络推广
  • 电商网站开发prd杭州网站优化效果
  • 怎样制作自己公司的网站城关网站seo
  • 大连建设银行网站网页设计制作网站模板
  • 深圳建设岗位证书报名网站佛山网站设计实力乐云seo
  • 安溪人做的网站社群营销活动策划方案
  • wordpress支持pdoseo整合营销
  • 绵阳网站设计制作百度收录申请入口
  • 建设银行银行号查询网站外包seo公司
  • 怎样让百度搜索到自己的网站发布软文平台
  • 做网站去哪里可以找高清的图片广州seo公司