首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Qt_5_F

    QT-QVariant

    int age;};Q_DECLARE_METATYPE(student)源文件:#include "mainwindow.h"#include "ui_mainwindow.h"#include<QVariant qv1(259); qDebug()<<"qv1:" << qv1.toInt(); QVariant qv2("Hello"); qDebug()<<"qv2: " << qv2. toString(); QMap<QString, QVariant> qmap; qmap["int"] = 2025; qmap["double"] = 3.14; qmap 配合使用 student stu; stu.age = 18; stu.iNo =1; stu.strname = "zhangsan"; QVariant qstu = QVariant::fromValue(stu); //使用静态方法保存数据 if(qstu.canConvert<student>()) { student t_stu =

    24510编辑于 2025-12-03
  • 来自专栏个人编程笔记

    Qt-自定义可编辑模型

    currencymodel.h #ifndef CURRENCYMODEL_H #define CURRENCYMODEL_H #include <QAbstractTableModel> #include <QVariant data(const QModelIndex &index,int role) const; QVariant headerData(int section, Qt::Orientation 类将大部分类型(int,string)的数据封装起来,调用时使用to函数取出,例如:int类型包装成QVariant,用QVariant::toInt()取出 QVariant CurrencyModel (); //} //(可编辑模型) QVariant CurrencyModel::data(const QModelIndex &index,int role) const { if(! index.isValid()){ return QVariant(); } if(role==Qt::TextAlignmentRole){ return

    60910编辑于 2023-03-03
  • 来自专栏个人编程笔记

    Qt-自定义可编辑模型

    currencymodel.h #ifndef CURRENCYMODEL_H #define CURRENCYMODEL_H #include <QAbstractTableModel> #include <QVariant data(const QModelIndex &index,int role) const; QVariant headerData(int section, Qt::Orientation 类将大部分类型(int,string)的数据封装起来,调用时使用to函数取出,例如:int类型包装成QVariant,用QVariant::toInt()取出 QVariant CurrencyModel (); //} //(可编辑模型) QVariant CurrencyModel::data(const QModelIndex &index,int role) const { if(! index.isValid()){ return QVariant(); } if(role==Qt::TextAlignmentRole){ return

    53110编辑于 2023-03-03
  • 来自专栏跟Qt君学编程

    Qt序列化数据

    原型 QDebug::QDebug(QString *string) 两种实现方法 使用QVariant类型作为参数实现。 QString toString(QVariant var) { QString string; QDebug(&string) << var; return string; qDebug() << toString(map); QStringList list = {"1", "2", "3"}; qDebug() << toString(list); 方法1打印输出: "QVariant (QVariantMap, QMap((\"1\", QVariant(int, 2))(\"3\", QVariant(int, 4)))) " "QVariant(QStringList, (\"1 \", \"2\", \"3\")) " 方法2打印输出: "QMap((\"1\", QVariant(int, 2))(\"3\", QVariant(int, 4))) " "(\"1\", \"

    1.4K20发布于 2020-07-07
  • 来自专栏jiajia_deng

    Qt 注册自定义数据类型提供信号和槽函数传递参数

    当需要传递这个数据时,不是直接使用,而是用 QVariant 来包装一下,信号和槽函数则直接使用 QVariant 类型的数据作为参数传递。 首先我们连接信号和槽: connect(this, SIGNAL(AddDocItemSignalNew(QVariant)), this, SLOT(AddDocItemNew(QVariant)), Qt::QueuedConnection); 信号和槽函数的声明如下: signals: void AddDocItemSignalNew(QVariant variant); private slots: void AddDocItemNew(QVariant variant); 当要发起信号的时候,把我们要传递的这个数据包装到 QVariant 中,然后传递给信号函数就可以了。 : void MainForm::AddDocItemNew(QVariant variant) { nim::DocTransInfo doc_info = variant.value<nim

    6.2K20发布于 2018-12-18
  • 来自专栏嵌入式开发圈

    一种基于QT应用程序封装JsonRpc2.0协议请求对象的便捷方法

    2、QVariant QVariant是一个可以存储多种数据类型的类,它可以方便地在不同的函数、类、模块之间传递数据。 QVariant的用法非常简单,只需要使用构造函数、赋值操作符、setValue函数等方法将数据存储到QVariant对象中,然后使用toXXX函数将QVariant对象转换为指定类型的数据。 QVariant v2 = "hello"; // 存储字符串 QVariant v3 = QDateTime::currentDateTime(); // 存储日期时间 / / 获取数据 int i = v1.toInt(); // 将 QVariant 转换为整数 QString s = v2.toString(); // 将 QVariant 转换为字符串 QVariantMap是一个Qt提供的容器类,它可以存储一组键值对,其中键是QString类型,值是QVariant类型。

    1.1K30编辑于 2023-10-09
  • 来自专栏jiajia_deng

    Qt 注册自定义数据类型提供信号和槽函数传递参数

    当需要传递这个数据时,不是直接使用,而是用 QVariant 来包装一下,信号和槽函数则直接使用 QVariant 类型的数据作为参数传递。 首先我们连接信号和槽: connect(this, SIGNAL(AddDocItemSignalNew(QVariant)), this, SLOT(AddDocItemNew(QVariant)), Qt::QueuedConnection); 信号和槽函数的声明如下: signals: void AddDocItemSignalNew(QVariant variant); private slots: void AddDocItemNew(QVariant variant); 当要发起信号的时候,把我们要传递的这个数据包装到 QVariant 中,然后传递给信号函数就可以了。 : void MainForm::AddDocItemNew(QVariant variant) { nim::DocTransInfo doc_info = variant.value<nim

    1.1K10编辑于 2023-10-21
  • 来自专栏Linux驱动

    51.Qt-使用ajax获取ashx接口的post数据

    data1,QVariant data2); private slots: void on_pushButton_clicked(); }; #endif // WIDGET_H () { QVariant depatment= "021"; QVariant start= ui->start->text(); QVariant end = ui-> end->text(); //"结束日期" QMetaObject::invokeMethod(engineObject, "getWrenchTools",Q_ARG(QVariant , depatment)\ ,Q_ARG(QVariant, start),Q_ARG(QVariant, end)); } engine.rootContext data1,QVariant data2)方法,从而实现数据返回.

    2.6K30发布于 2019-12-26
  • 来自专栏Linux驱动

    QT-QAxObject快速写入EXCEL示例

    转为QList<QList<QVariant> >,用于快速读出的 void castVariant2ListListVariant(const QVariant &var, QList<QList<QVariant > > 转为QVariant,用于快速写入的 void castListListVariant2Variant(const QList<QList<QVariant> > &cells, QVariant (cells[i])); } res = QVariant(vars); } int main(int argc, char *argv[]) { QApplication a > > datas; for(int i=1;i<101;i++) { QList<QVariant> rows; for(int j=1;j<10;j+ +) { rows.append(i*j); } datas.append(rows); } QVariant

    6K10发布于 2019-05-24
  • 来自专栏跟Qt君学编程

    Qt官方示例-自定义类型

    这些类型与元对象系统集成在一起,使它们可以存储在QVariant对象中,在调试信息(如:qDebug)中写出,并在信号槽通信中传递。    在此示例中,我们介绍一个简单的Message类,描述如何使它与QVariant一起使用,并说明如何扩展它以生成自身的可打印表示形式以用于调试输出。 这是使用QVariant::setValue()函数存储值的方法: QVariant stored; stored.setValue(message);   另外,如果使用的编译器不支持成员模板函数, 则可以使用QVariant::fromValue()函数。 使用QVariant::value()成员模板函数来检索该值: Message retrieved = stored.value<Message>(); qDebug() << "Retrieved:"

    1.6K20发布于 2020-03-03
  • 来自专栏跟Qt君学编程

    Qt开源网络库[3]-原理篇上

    url); } get函数 HttpRequest &url(const QString &url); HttpRequest &header(const QString &key, const QVariant &value); HttpRequest &headers(const QMap<QString, QVariant> &headers); HttpRequest &queryParam(const QString &key, const QVariant &value); HttpRequest &queryParams(const QMap<QString, QVariant> ¶ms ); HttpRequest &userAttribute(const QVariant &value); HttpRequest &jsonBody(const QVariant &jsonBody HttpRequest &HttpRequest::jsonBody(const QVariant &jsonBody) { if (jsonBody.type() == QVariant::Map

    1.5K30发布于 2019-07-15
  • 来自专栏个人编程笔记

    Qt-使用控件ListView

    TagCode() const { return this->mTagCode; } QString TagName() const { return this->mTagName; } QVariant ); //外部接口 清除model Q_INVOKABLE void clear(); //虚函数 qml内部调用 获取第index行的内容 role 内容索引 QVariant roleNames() const; //自定义 设置当前model第index行的当前组件指针 Q_INVOKABLE void setcuritem(int index , QVariant , int role) const { if (index.row() < 0 || index.row() >= m_datas.size()) { return QVariant m_datas[nRow].TagCode(); break; } break; } return QVariant

    1.6K20编辑于 2023-03-03
  • 来自专栏用户2442861的专栏

    PyQt QTableView嵌入QComboBox

    (comboModel.index(1, 0, QModelIndex()), QVariant(u'松鼠')) comboModel.setData(comboModel.index(1, 1, QModelIndex()), QVariant(u'可爱的松树精灵')) comboModel.setData(comboModel.index(2, 0, QModelIndex()), QVariant (comboModel.index(3, 0, QModelIndex()), QVariant(u'猫头鹰')) comboModel.setData(comboModel.index(3, 1, (model.index(0, 1, QModelIndex()), QVariant(u'80cm')) model.setData(model.index(0, 2, QModelIndex() ), QVariant(u'12Kg')) table.setModel(model) table.setItemDelegateForColumn(0, DBComboBoxDelegate(

    2.4K10发布于 2018-09-20
  • 来自专栏Pou光明

    Qt ModelView教程——设置表头与可编辑Table

    一、设置Table的行和列表头 只需在只读表的基础上加上 QVariant headerData(int section, Qt::Orientation orientation, int role) QVariant MyModel::headerData(int section, Qt::Orientation orientation, int role) const { if (role case 1: return QString("second"); } } } return QVariant int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; bool setData(const QModelIndex & index, const QVariant index参数会告诉我们具体哪个单元格被编辑、value参数可以让我们获得单元格内具体的内容 bool MyModel::setData(const QModelIndex & index, const QVariant

    4.5K10发布于 2020-02-17
  • 【Qt Qt的信号和槽传递机制 如何支持 std库包含的数据类型】

    然而,你可以通过以下几种方式来间接支持标准库中的数据类型: 使用QVariant QVariant是Qt提供的一个通用数据类型,它可以存储几乎所有类型的数据,包括标准库中的类型。 你可以将标准库中的数据类型转换为QVariant,然后通过信号和槽传递。 例如: // 发送方 emit sendData(QVariant::fromValue(std::vector<int> {1, 2, 3})); // 接收方 connect(sender, &Sender ::sendData, receiver, &Receiver::receiveData); void Receiver::receiveData(const QVariant &data) {

    12910编辑于 2026-01-23
  • 来自专栏jiajia_deng

    Qt 模拟 HTTP 表单提交文字或文件到服务器

    ::FormDataType); QHttpPart textPart; textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant textPart.setBody("my text"); QHttpPart imagePart; imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant ("image/jpeg")); imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; ("application/octet-stream")); file_part.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant 你可以通过 reply 对象获取 HTTP 返回值: QVariant variant = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute

    90020编辑于 2023-10-21
  • 来自专栏Qt项目实战

    Qt音视频开发16-mpv通用接口

    封装好了多个接口(https://github.com/mpv-player/mpv-examples/tree/master/libmpv),看里面的注释是英文的,估计应该是官方提供的,传入的参数都是支持QVariant :Type t) { // The Qt docs say: "Although this function is declared as returning // "QVariant return static_cast<int>(v.type()) == static_cast<int>(t); } void set(mpv_node *dst, const QVariant command_variant(mpv_handle *ctx, const QVariant &args) { node_builder node(args); mpv_node res f(&res); return node_to_variant(&res); } static inline QVariant get_property(mpv_handle *ctx, const

    1.4K30发布于 2020-08-24
  • 来自专栏Qt项目实战

    Qt音视频开发14-mpv读取和控制

    = NULL) { QVariant width = getValue("width"); QVariant height = getValue("height"); = NULL) { QVariant value = getValue("duration"); length = value.toDouble() * 1000; = NULL) { QVariant value = getValue("mute"); ok = ! = NULL) { QVariant value = getValue("aid"); track = value.toInt(); } return = NULL) { QVariant value = getValue("track-list/count"); trackCount = value.toInt();

    1.6K20发布于 2020-08-20
  • 来自专栏跟Qt君学编程

    Qt Quick实践系列-Qml与Widget交互

    C++代码: QQuickWidget *view = new QQuickWidget; view->setSource(QUrl("qrc:/View.qml")); QVariant retVal / Qt::DirectConnection, /* 连接方式 */ Q_RETURN_ARG(QVariant , retVal), /* 标记返回值 */ Q_ARG(QVariant, "Hello"), /* 输入参数1 */ Q_ARG(QVariant, "world"));/* 输入参数2 */ qDebug() << "value: " << retVal; view->show(); Qml代码: import QtQuick var1, var2) { console.log(var1, var2) return true; } } 打印输出: Hello world value: QVariant

    5.3K10发布于 2020-03-19
  • 来自专栏技术之路

    QTableView 一列添加两个按钮

    rowCount(const QModelIndex &parent) const; int columnCount(const QModelIndex &parent) const; QVariant flags(const QModelIndex &index) const; void setHorizontalHeader(const QStringList& headers); QVariant TableModel::columnCount(const QModelIndex &parent) const { return m_HorizontalHeader.count(); } QVariant ; if (values.size() > ncol) return values.at(ncol); else return QVariant (); } return QVariant(); } Qt::ItemFlags TableModel::flags(const QModelIndex &index) const {

    4.6K90发布于 2018-01-31
领券