Qt 笔记
QT学习笔记2:QT中常用函数

QT学习笔记2:QT中常⽤函数⼀、QString转numberQString number(long n, int base = 10)QString number(ulong n, int base = 10)QString number(int n, int base = 10)QString number(uint n, int base = 10)QString number(qlonglong n, int base = 10)QString number(qulonglong n, int base = 10)QString number(double n, char format = 'g', int precision = 6)整形的转换格式都是⼀样的,第⼀个参数是⼗进制要转换的整数,第⼆个参数指定以什么进制来转换,默认是⼗进制,⽐如:QString strNumDec = QString::number(55, 10); //转化成10进制QString strNumHex = QString::number(55, 16); //16进制QString strNumBit = QString::number(55, 2); //2进制第⼆个参数base必须在[2,36]之间,当base为10以外的值时,第⼀个参数n将被视为⽆符号整数。
⼆、number 转 QStringdouble toDouble(bool * ok = 0) constfloat toFloat(bool * ok = 0) constint toInt(bool * ok = 0, int base = 10) constlong toLong(bool * ok = 0, int base = 10) constqlonglong toLongLong(bool * ok = 0, int base = 10) constshort toShort(bool * ok = 0, int base = 10) constQString也提供了⼀系列转换成数值的函数,参数ok指⽰转换是否出错,参数base指⽰当前QString是什么进制,如QString str = "55";bool ok;int numBit = str.toInt(&ok, 2);int numOct = str.toInt(&ok, 8);int numDec = str.toInt(&ok, 10);int numHex = str.toInt(&ok, 16);三、QPixmap加载图⽚并获取图⽚宽和⾼void Dialog::paintEvent(QPaintEvent *){QPainter painter(this);QPixmap pix;//加载图⽚pix.load("D:\\1001.jpg");//获得图⽚的宽和⾼qreal width = pix.width();qreal height = pix.height();//图⽚放⼤两倍pix = pix.scaled(width*2,height*2,Qt::KeepAspectRatio);painter.drawPixmap(0,0,100,100,pix);}四、QString与String转换//QString转换Stringstring s = qstr.toStdString();//String转换QStringQString qstr2 = QString::fromStdString(s);这样虽然能成功,但是会出现中⽂乱码情况。
QT灵修笔记

腓立比书3:1-111、8节不但如此、我也将万事当作有损的、因我以认识我主基督耶稣为至宝。
我为他已经丢弃万事、看作粪土、为要得着基督.种子:认识耶稣为至宝默想:“至宝”中的“至”是最的意思,顾名思义“至宝”就是最为宝贵的意思。
这一个对比的关系,就好比保罗他将万事放在天平的一边,而天平的另一边是主基督耶稣。
保罗好像透过这句话表达他的一种自豪感,他以认识主耶稣基督为至宝贵的事,即使拿万事来和他交换,他也觉得是个亏本的生意。
我就想到在和朋友们聊天时,他们说起各自吃喝玩乐的周末眉飞色舞,让我好生羡慕。
甚至在服侍时还在衡量,要不是每周日的服侍,我的周末一定也能安排地好好的,和他们一样精彩。
当我读到这句话的时候,心里充满羞愧。
我的主,为了我的缘故将生命都舍了,而我在享受这份救恩时竟然如此心安理得,甚至在所摆上的微不足道的一丁点时还如此计较。
因为这句话,让我重新思考了救恩,并且对救恩有了更深的认识,我相信正因为保罗他对救恩的深刻认识,他才会将认识主基督耶稣这件事当做一项可夸耀的。
应用:当我去计较为主所舍的,抬头仰望十字架,想一想主在十字架上为我舍的,这一切就显得微不足道了。
祷告:爱我的主,感谢你!因为爱我,将生命倾倒在十架上。
求你悦纳我所摆上的一点点,也求你让我明白我爱你,是因为你先爱我,谢谢你这不计较的爱!愿你的爱充满我,好让我心甘乐意去爱人。
2、种子:义9并且得以在他里面、不是有自己因律法而得的义、乃是有信基督的义、就是因信神而来的义因信神而来的义,就是不计较、宽容3、种子:能力10 使我认识基督、晓得他复活的大能、并且晓得和他一同受苦、效法他的死.11 或者我也得以从死里复活。
4、种子:7 有益有损。
qt学习笔记

汇文教育;QFil eInfo类1、q filei nfo提供有关文件系统中的,文件的名称和位置信息(路径),它的访问权限,以及它是否是一个目录或符号链接,该文件的大小和最后修改/读取时间也可用。
2、QFil eInFo可以指向一个文件,一个相对或一个绝对文件路径,绝对文件路径开始与目录分隔符“/”或驱动器的规格(除了在UNI X),相对文件名开始有一个目录名或一个文件名,并指定一个相对于当前工作目录的路径.一个绝对路径的一个例子是一个字符串“/tmp /qua ltz”,相对路径可能看起来像“src / fa tlib”,你可以使用这个函数isrel ative()来检查 qfil einfo是否使用相对或绝对路径的文件,你可以调用函数co nvert toabs()转换 qfil einfo的相对路径为绝对路径。
这q filei nfo文件在构造函数中设置或后setfi le(),使用exi sts()看文件是否存在,si ze()得到它的大小。
加速性能,qf ilein fo缓存文件有关的信息,因为文件可以被其他用户或程序更改,甚至由同一程序的其他部分,这个函数refr esh(),刷新文件信息,如果你想关闭一个qfi leinf o的缓存和强制访问文件系统每次请求信息,你可以调用setCa ching(FALS E).文件的类型是获得通过i sfile(),is dir()和isSy mlink()该文件的日期由 crea ted(), las tModi fied() and last Read(),文件的访问权限由isRe adabl e(),isWri table() an d isE xecut able()获得。
QT学习笔记8:QDir类及其用法总结

QT学习笔记8:QDir类及其⽤法总结简介QDir类提供了访问系统⽬录结构及其内容的与平台⽆关的⽅式。
头⽂件:#include <qdir.h>QDir类⽤来操作路径名及底层⽂件系统,获取关于⽬录路径及⽂件的相关信息,也可以⽤来获取Qt资源系统的⽂件信息。
QDir类使⽤相对或绝对⽂件路径来指向⼀个⽂件/⽬录。
绝对路径是从⽬录分隔符“/”或者带有⼀个驱动器标识(除了在Unix下)。
如果总是使⽤“/”作为⽬录分隔符,Qt将会把你的路径转化为符合底层的操作系统的。
相对⽂件名是由⼀个⽬录名称或者⽂件名开始并且指定⼀个相对于当前路径的路径。
绝对路径⽰例:其中第⼆个路径是Windows系统下,它指向的路径是:C:\Documents and Secctings。
相对路径⽰例:注意当前路径是指应⽤程序的⼯作⽬录,⽽QDir⾃⼰的路径可以通过setPath()设置并且通过path()获得。
可以使⽤QDir类的⽅法isRelative()或者是isAbsolute()来判断QDir指向的路径是相对路径还是绝对路径,如果是相对路径,可使⽤⽅法makeAbsolute()将相对路径转换为绝对路径。
1. ⽬录及导航操作QDir类对象所关联的⽬录路径可以使⽤path()函数获得,可以使⽤setPath()⽅法来设置新的路径;可以使⽤⽅法absolutePath()来获得⽬录的绝对路径。
⽬录名可以使⽤dirName()⽅法来获得,该⽅法返回绝对路径中的最后⼀个项⽬,即⽬录名,但如果QDir关联的是当前⼯作⽬录,则返回"."。
可以使⽤mkdir()⽅法来创建⼀个⽬录;使⽤rename()⽅法来对关联⽬录进⾏重命名;使⽤rmdir()⽅法来移除⼀个⽬录;使⽤exists()⽅法检测⽬录是否存在;使⽤refresh()⽅法来刷新⽬录内容。
其余⽅法详见QDir类的API⽂档。
2. ⽂件及⽬录内容⽂件系统中⽬录中⼀般包括⽂件、⼦⽬录及符号链接;可以使⽤count()⽅法来获得QDir类对象关联的⽬录中的条⽬数⽬;可以使⽤entryList()获取所有条⽬的名称;可以使⽤entryInfoList()来获取条⽬的QFileInfo内容。
QT笔记(11)——QFileInfo的简单用法

QT笔记(11)——QFileInfo的简单用法QFileInfo的几个构造函数:QFileInfo ( )QFileInfo ( const QString& file )QFileInfo ( const QFile& file )QFileInfo ( const QDir& dir, const QString& file )QFileInfo ( const QFileInfo& fileinfo )一般用法:QFileInfo fileInfo(path);//orQFileInfo fileInfo;fileInfo.setFile(path);boolexists(); 判断文件是否存在,若存在返回true。
qint64size(); 获取文件大小,返回bytes。
//路径和文件名相关:QStringpath(); 返回文件路径,不包含文件名。
QStringfilePath(); 返回文件路径,包含文件名。
QString fileName();返回文件名称。
// 例子如下QFileInfo fileInfo("/home/dipper/xyz.tar.gz"); fileInfo.path(); // returns "/home/dipper" fileInfo.fileName(); // returns "xyz.tar.gz" fileInfo.baseName(); // returns "xyz"pleteBaseName(); // returns "xyz.tar" fileInfo.suffix(); // returns "gz"pleteSuffix(); // returns "tar.gz" //类型:boolisFile(); 判断是否是文件。
QT学习笔记7:C++函数默认参数

QT学习笔记7:C++函数默认参数C++中允许为函数提供默认参数,⼜名缺省参数。
使⽤默认参数时的注意事项:①有函数声明(原型)时,默认参数可以放在函数声明或者定义中,但只能放在⼆者之⼀。
建议放在函数声明中。
double sqrt(double f = 1.0); //函数声明double sqrt(double f) //函数定义{// ....}②没有函数(原型)时,默认参数在函数定义时指定.//没有函数声明double sqrt(double f = 1.0) //函数定义③在具有多个参数的函数中指定默认值时,默认参数都必须出现在不默认参数的右边,⼀旦某个参数开始指定默认值,它右边的所有参数都必须指定默认值.int f (int i1, int i2 = 2, int i3 = 3); // 正确int g (int i1, int i2 = 2, int i3); // 错误, i3未指定默认值int h (int i1 = 1, int i2, int i3 = 3); // 错误, i2未指定默认值④在调⽤具有默认参数的函数时, 若某个实参默认,其右边的所有实参都应该默认。
//例如, ⼀个函数声明如下int f(int i1 = 1, int i2 =2, int i3 = 3);//调⽤函数 f()f(); //正确, i1=1, i2=2, i3=3f(3); //正确, i1=3, i2=2, i3=3f(2, 3); //正确, i1=2, i2=3, i3=3f(4, 5, 6); //正确, i1=4, i2=5, i3=6f(, 2, 3); //错误, i1默认,其右边的i2和i3没有默认注意的是:带缺省值的参数必须放在参数列表的最后⾯。
因为传参是从右向左的。
缺省参数不能同时在函数声明和定义中出现,只能⼆者留其⼀。
缺省值必须是常量或者全局变量。
C语⾔并不⽀持缺省。
Qt笔记之使用设计器自定义窗口标题栏

Qt笔记之使⽤设计器⾃定义窗⼝标题栏1.在窗⼝显⽰之前,设置WindowFlags为FramelessWindowHint,以产⽣⼀个没有边界的窗⼝例如Widget::Widget(QWidget *parent) :QWidget(parent, Qt::FramelessWindowHint), //在此设置WindowFlagsui(new Ui::Widget){ui->setupUi(this);//setWindowFlags(Qt::FramelessWindowHint); 或在构造函数体中设置}2.在设计器中,拖⼀个Widget到窗⼝上。
为⽅便描述,我命名此Widget为titleBarWidget将titleBarWidget的minimumSize->height改为30,以固定标题栏⾼度更改titleBarWidget的样式表为background-color: #12B7F5;再拖⼀个Vertical Spacer到窗⼝上,并设置窗⼝为竖直布局为去除标题栏边距,将layoutLeftMargin、layoutTopMargin和layoutRightMargin都设置为0效果如图3.为了能拖动标题栏移动窗⼝,我们定义⼀个类,如下TitleBarWidget.h#ifndef TITLEBARWIDGET_H#define TITLEBARWIDGET_H#include <QWidget>class TitleBarWidget : public QWidget{Q_OBJECTpublic:explicit TitleBarWidget(QWidget *parent = nullptr);protected:virtual void mousePressEvent(QMouseEvent *event);virtual void mouseMoveEvent(QMouseEvent *event);private:int differenceX, differenceY;};#endif// TITLEBARWIDGET_HTitleBarWidget.cpp#include "TitleBarWidget.h"#include <QMouseEvent>TitleBarWidget::TitleBarWidget(QWidget *parent) : QWidget(parent) { }void TitleBarWidget::mousePressEvent(QMouseEvent *event){QWidget *parentWidget = static_cast<QWidget *>(parent());differenceX = event->globalX() - parentWidget->x();differenceY = event->globalY() - parentWidget->y();}void TitleBarWidget::mouseMoveEvent(QMouseEvent *event){int x = event->globalX() - differenceX;int y = event->globalY() - differenceY;QWidget *parentWidget = static_cast<QWidget *>(parent());parentWidget->move(x, y);}将titleBarWidget提升为TitleBarWidget,就能实现拖动标题栏移动窗⼝了4.然⽽问题来了,titleBarWidget的样式表失效了为解决这个问题,需要重写QWidget中的paintEvent,代码如下void TitleBarWidget::paintEvent(QPaintEvent *event){Q_UNUSED(event)QStyleOption option;option.init(this);QStylePainter painter(this);painter.drawPrimitive(QStyle::PE_Widget, option);}。
QT学习笔记4:QT中GraphicsView编程

QT学习笔记4:QT中GraphicsView编程⼀、QGraphicsScene1、QGraphicsSceneQGraphicsScene继承⾃QObject,是⼀个管理图元的容器,与QGraphicsView合⽤可以在2D屏幕上显⽰如线、三⾓形、⽂本、⾃定义图元等图元。
QGraphicsScene是不可见的,只⽤于管理图元。
为了查看场景,需要创建⼀个视图组件。
⼀个场景分为三个层:图元层、前景层和背景层。
场景的绘制总是从背景层开始,然后是图形项层,最后是前景层。
2、事件处理与传播QGraphicsScene的责任之⼀是传播来⾃视图的事件。
要发送⼀个事件到场景,需要构造⼀个继承⾃QEvent的事件,使⽤QApplication::sendEvent()函数发送事件。
event()函数负责派发事件到各个图元。
常⽤的事件会被便利事件处理函数处理,如⿏标按下事件会被mousePressEvent()函数处理。
按键事件会被派发到焦点图元。
为了设置焦点图元,可以调⽤setFocusItem()函数,或是图元⾃⾝调⽤QGraphicsItem::setFocus()函数。
调⽤focusItem()函数可以获取当前的焦点图元。
为了兼容图形组件,场景维护着⾃⼰的焦点信息。
默认场景并没有焦点,并且所有的按键事件会别丢弃。
如果setFocus()函数被调⽤,或是场景中⼀个图元获得了焦点,场景会⾃动获得焦点。
如果场景有焦点,hasFocus()函数会返回true,按键事件会被发送到焦点图元。
如果场景失去了焦点,⽽图元有焦点(如调⽤clearFocus()函数),场景会维护图元的焦点信息,⼀旦场景重新获得焦点,会确保最后⼀个有焦点的图元获得焦点。
对于悬停效果,QGraphicsScene会派发悬停事件,如果某个图元接受了悬停事件(调⽤QGraphicsItem::acceptHoverEvents()),当⿏标进⼊图元的区域时,图元会接收到⼀个GraphicsSceneHoverEnter事件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
打开一个网页:
QDesktopServices 打开一个桌面应用程序,利用该类型打开一个网页
需要使用到的类<QUrl> <QDesktopServices>(用于访问桌面服务)
主要代码:
QDesktopServices::openUrl(QUrl("")); 打开一个网页代码
显示时间:
需要增加的类
<QDateTime>
主要代码:
QDateTime current = QDateTime::currentDateTime();
QString time = current.toString("yyyy-M-dd hh:mm:ss");
ui->timelineEdit->setText(time);
插入动画
包含头文件<QMovie>
在编译器中显示当前程序执行的操作,
需要增加的类
<QtDebug>
主要代码:
qDebug()<<"current time"<<time
当程序需要关闭的时候,需要增加的头文件
#<QCloseEvent>
在程序启动的时候显示图片
QSplash
需要增加的类
<QPixmap> <QSplashScreen >
循环语句for(long index = 0 ; index<=10000000;index++);
用到的代码
QApplication a(argc, argv);
QPixmap pixmap("block.png");
QSplashScreen splash(pixmap);
splash.show();
for(long index=0;index<=800000000;index++);
MainWindow w;
w.show();
splash.finish(&w);
return a.exec();。