如何在QT6上配置文心一言的接口,从而生成一个自己的对话框

前言:

网上有很多在前端调用文心一言接口的,想在QT上配置文心一言的接口,从而生成一个自己的对话框。

效果展示:

在这里插入图片描述

qtAI

环境配置:

当前环境:QT6.6.3
https://luckycola.com.cn/public/dist/#/上注册一个账号,然后获取你的uid和APPKey,我觉得有点慢,就画两块钱直接快速获得了APPKey。
在这里插入图片描述

计划完善:

输出的内容,最好是可以有格式的,整齐排列。后面还会测试对图片进行分析完善。

核心代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTextEdit>
#include <QMessageBox>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{

    ui->setupUi(this);
    this->setWindowTitle("QT之文心一言接口");
    QUrl url("https://luckycola.com.cn/ai/openwxyy");
    request = QNetworkRequest(url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json; charset=utf-8");
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QString userInput = ui->textEdit_input->toPlainText();
    QNetworkAccessManager* manager = new QNetworkAccessManager(this);
    QJsonObject json;
    json["ques"] = userInput;
    json["appKey"] = "填写你的appKey";
    json["uid"] = "填写你的uid";
    json["isLongChat"] = 0;

    QJsonDocument doc(json);
    QByteArray data = doc.toJson();
    qDebug() << "Sending JSON data:" << data;

    QNetworkReply *reply = manager->post(request, data);
    connect(reply, &QNetworkReply::finished, this, [reply, this]() {
        if (reply->error() == QNetworkReply::NoError) {
            QByteArray responseData = reply->readAll();
            QJsonDocument responseDoc = QJsonDocument::fromJson(responseData);
            QJsonObject jsonObject = responseDoc.object();

            if (jsonObject.contains("code") && jsonObject["code"].toInt() != 0) {
                QMessageBox::warning(this, "服务器错误", "服务器处理请求时出错,错误代码:" + jsonObject["code"].toString());
                return;
            }

            QString outputText = QString(QJsonDocument(jsonObject).toJson(QJsonDocument::Compact));
            ui->textEdit_output->setText(outputText);
        }
        reply->deleteLater();
    });
}

void MainWindow::on_pushButton_2_clicked()
{
    ui->textEdit_input->clear();
    ui->textEdit_output->clear();
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt 中可以使用 QTableWidget 类来创建一个带有表格的对话框。 以下是一个简单的示例代码: ```cpp #include <QtWidgets/QApplication> #include <QtWidgets/QDialog> #include <QtWidgets/QTableWidget> #include <QtWidgets/QVBoxLayout> int main(int argc, char *argv[]) { QApplication a(argc, argv); QDialog dialog; dialog.setWindowTitle("Table Widget Dialog"); QTableWidget tableWidget(&dialog); tableWidget.setColumnCount(3); tableWidget.setRowCount(4); tableWidget.setHorizontalHeaderLabels({"Name", "Age", "Gender"}); tableWidget.setVerticalHeaderLabels({"Row 1", "Row 2", "Row 3", "Row 4"}); QTableWidgetItem *item1 = new QTableWidgetItem("John"); QTableWidgetItem *item2 = new QTableWidgetItem("25"); QTableWidgetItem *item3 = new QTableWidgetItem("Male"); tableWidget.setItem(0, 0, item1); tableWidget.setItem(0, 1, item2); tableWidget.setItem(0, 2, item3); QTableWidgetItem *item4 = new QTableWidgetItem("Mary"); QTableWidgetItem *item5 = new QTableWidgetItem("32"); QTableWidgetItem *item6 = new QTableWidgetItem("Female"); tableWidget.setItem(1, 0, item4); tableWidget.setItem(1, 1, item5); tableWidget.setItem(1, 2, item6); QVBoxLayout layout(&dialog); layout.addWidget(&tableWidget); dialog.setLayout(&layout); dialog.show(); return a.exec(); } ``` 在这个示例中,我们创建了一个 QDialog 对象,然后创建一个 QTableWidget 对象,并设置它的行数、列数和水平/垂直标头。接着,我们创建 QTableWidgetItems 对象并将它们添加到表格中。最后,我们将 QTableWidget 对象添加到 QDialog 对象的布局中,并显示对话框。 运行代码后,应该会看到一个带有表格的对话框
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值