如何在Qt中使用cookies

如何在Qt中使用cookies,第1张

Qt获取cookie非常简单。只要我们继承QNetworkCookieJar之后然后实现一个自己的获取cookie的接口,

通过它的protected成员函数allCookies即可获得当前webview里面的浏览过页面所有保存的cookie了。

当然还需要通过当前webview的QNetworkAccessManager来把我们的cookie对象关联一下。

h

[cpp] view plain copy print

#ifndef NETWORKCOOKIE_H

#define NETWORKCOOKIE_H

#include <QtNetwork/QNetworkCookie>

#include <QtNetwork/QNetworkCookieJar>

class NetworkCookie : public QNetworkCookieJar

{

Q_OBJECT

public:

NetworkCookie(QObject parent);

~NetworkCookie();

QList<QNetworkCookie> getCookies();

void setCookies(const QList<QNetworkCookie>& cookieList);

private:

};

#endif // NETWORKCOOKIE_H

Cpp

[cpp] view plain copy print

#include "networkcookieh"

NetworkCookie::NetworkCookie(QObject parent)

: QNetworkCookieJar(parent)

{

}

NetworkCookie::~NetworkCookie()

{

}

QList<QNetworkCookie> NetworkCookie::getCookies()

{

return allCookies();

}

void NetworkCookie::setCookies(const QList<QNetworkCookie>& cookieList)

{

if(this == NULL)

return;

this->setAllCookies(cookieList);

}

使用:

[cpp] view plain copy print

//设置cookie到浏览器

uiwebView->page()->networkAccessManager()->setCookieJar(&network_cookie_);

QList<QNetworkCookie> cookies = network_cookie_getCookies();

Qt 安装组件及其说明

“Qt 59”分类下的开发组件 组件 说明 MinGW 530 32 bit 编译器模块。MinGW 是 Minimalist GNU for Windows 的缩写,MinGW 是 Windows 平台上使用的 GNU 工具集导入库的集合。是本教程使用 MinGW 编译,所以必须安装。 UWP UWP 是 Windows 10 中 Universal Windows Platform 的简称,有不同编译器类型的 UWP,属于 MSVC 编译器生成的 Qt 库。如果不是开发 UWP 应用程序,就不需要,直接忽略。 MSVC 针对 Windows 平台上的 MSVC 编译器的 Qt 组件,如 msvc2015 32-bit 和 msvc2015 64-bit 等。安装该组件需要计算机上已经安装相应版本的 Visual Studio。如果你不使用 MSVC 编译器进行开发,就不用安装。本教程使用 MinGW 编译组件,所以不用安装 MSVC 组件。 Android 这是针对安卓应用开发的 Qt 库,如果读者有安卓开发这方面需求可以自己选择安装,一般情况下用不到。 Sources Qt 的源代码包,除非你想阅读 Qt 的源码,否则不用安装。 Qt Qt 的附加模块,大部分建议安装,这些附加模块括号里的 TP 是指 Technology Preview ,技术预览模块的意思,还处在功能测试阶段,不是正式版模块;附加模块括号里的 Deprecated 是指抛弃的旧模块,兼容旧代码使用的,一般用不到。这些附加模块读者可以选择部分或都勾选了安装,占用空间不大。

int main(int argc, char argv[])

{

QApplication a(argc, argv);

MainWindow w;

wshow();//窗口没有销毁,会在这阻塞,线程对象没有创建出来,自然接收不到信号。

/定义一个线程,并且启动一个线程/

MyThread receive_data;

receive_datastart();

return aexec();

}

在Qt中,如果要打印一个浮点数而不显示科学计数法,可以使用QString::number()函数并将它的格式设置为'f'。例如:

```

double num = 1234567890123456789;

QString str = QString::number(num, 'f', 10);

qDebug() << str; // 输出:1234567890123456789

```

其中,第二个参数'f'表示使用固定点格式(fixed-point notation),即不使用科学计数法;第三个参数10表示小数点后保留10位。

如果要将这个字符串打印出来,可以使用QTextDocument和QPrinter类,如下所示:

```

QTextDocument document;

documentsetPlainText(str);

QPrinter printer(QPrinter::HighResolution);

printersetOutputFormat(QPrinter::PdfFormat);

printersetOutputFileName(\"outputpdf\");

documentprint(&printer);

```

这段代码将把字符串str渲染为PDF文件,并保存到\"outputpdf\"文件中。注意,这里用的是QPrinter::HighResolution选项以获得更高的打印质量

[cpp] view plaincopyprint

  折线图绘制 

  author 周翔 

  2012-8-14 

 

  对外提供接口 

 

   void showData(int data);接受外部的折线数据 

   void setSingleUnitX(const int &value);设置x轴的单位像素 

   void startUpdataTimer(int msecond);定时器更新折线图 

   void stopUpdataTimer();关闭定时器 

 

  /  

  

#ifndef LINEGRAPHWIDGET_H  

#define LINEGRAPHWIDGET_H  

  

#include <QWidget>  

#include <QPen>  

#include <QPainter>  

#include <QResizeEvent>  

//#include <QDebug>  

#include <QTimer>  

  

struct point  

{  

    int x;  

    int y;  

};  

  

class LineGraphWidget : public QWidget  

{  

    Q_OBJECT  

public:  

    //mix和max为折线的y轴的数据范围  

    explicit LineGraphWidget(int min, int max, QWidget parent = 0);  

    void setSingleUnitX(const int &value) {singleUnitX = value;}//设置x轴的一个单位占多少个像素,默认10  

    //支持定时器定时更新  

    void startUpdataTimer(int msecond);  

    void stopUpdataTimer();  

signals:  

    //支持实时更新  

    void newDataCome();//有新数据到来时发出的折线图更新信号  

public slots:  

    / 

      @brief showData 

      @param adress 地址 

      @param _data 数据 

     /  

    void showData(const QString& adress,int _data);//接受来之外部的数据  

    / 

      @brief slt_showData 接受外部数据 

      @param name 设备名 

      @param _data 数据 

     /  

    void slt_showData(ushort name,int _data);  

protected:  

    void paintEvent(QPaintEvent );  

    void resizeEvent(QResizeEvent e);  

private:  

    QString  m_currentNodeAdress;//当前显示的节点的地址  

    ushort m_currentNodeName;//当前节点的设备名  

  

    QList<int> xList;  

    QList<int> yList;  

    int Counter;  

  

  

  

    //窗口的长和宽  

    int widgetX;  

    int widgetY;  

    //折线图的显示范围  

    int rangeMin;  

    int rangeMax;  

    //根据窗口和范围得出的单位长,x轴,y轴  

    int singleUnitX;  

    int singleUnitY;  

  

    //根据窗口得出的多少个单位,x轴,y轴  

    int sumUnitX;  

    int sumUnitY;  

  

    point basePoint;//折线图的原点  

  

    point xAxisEndPoint;//X轴的终点  

  

    point yAxisEndPoint;//Y轴的终点  

  

    QTimer timer;  

  

    void getSumUnitX();  

    void getSingleUnitY();  

  

    void initGraph();  

  

    void flush();//数据传入的节点不是现在的当前的节点的时候,刷新画面,清除所有的值  

  

  

};

PrintPreviewDialog pPDlg;

exec_prefix='NONE'PACKAGE='libevent'

PACKAGE_BUGREPORT=''

PACKAGE_NAME=''

PACKAGE_STRING=''

PACKAGE_TARNAME=''

PACKAGE_URL=''

PACKAGE_VERSION=''

PATH_SEPARATOR=':'

以上就是关于如何在Qt中使用cookies全部的内容,包括:如何在Qt中使用cookies、qt4.5.1需要安装哪些组件、谁帮我看看我的QT代码,槽总是接收不到信号,我写个简单的都不行。麻烦大神帮忙,痛苦我一天了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9271016.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存