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代码,槽总是接收不到信号,我写个简单的都不行。麻烦大神帮忙,痛苦我一天了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)