【QT笔记】QString与char数组转换

本文介绍如何在Qt环境中实现QString与C风格字符串之间的相互转换。通过具体的代码示例展示了使用toLocal8Bit和fromLocal8Bit方法完成这一过程,并确保了字符串正确无误地被转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <QDebug>

int main()
{
    char path[50];
    QString str = "D:\\搜狗高速下载\\weka-3-8-3jre-x64.exe";
    QByteArray ba = str.toLocal8Bit();
    memcpy(path,ba.data(),ba.size()+1);//加1是为了最后的终结符,否则转换回来的时候不知道什么时候截止

    QString str2;
    str2 = QString::fromLocal8Bit(path);
    qDebug()<<str2;
    return 0;
}
### QtHalcon集成使用 #### HalconQt环境配置 为了使Halcon能够顺利运行在基于Qt的应用程序中,需先完成两者之间的兼容设置。由于Halcon支持Linux系统,并且QT也具备跨平台特性,在嵌入式Linux环境下可以实现两者的融合[^2]。 ```cpp // main.cpp #include <QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } ``` #### 创建显示窗口类 定义一个继承自`QWidget`的新类用于展示图像数据。此部件负责接收来自Halcon的数据并将其转换成适合Qt界面的形式呈现给用户。 ```cpp // widget.h #ifndef WIDGET_H #define WIDGET_H #include <QWidget> class Widget : public QWidget { public: explicit Widget(QWidget *parent = nullptr); protected: void paintEvent(QPaintEvent *); }; #endif // WIDGET_H ``` ```cpp // widget.cpp #include "widget.h" #include <QPainter> extern Hlong window_handle; // 声明外部变量来保存HALCON窗口句柄 Widget::Widget(QWidget *parent): QWidget(parent){ } void Widget::paintEvent(QPaintEvent *) { QPainter painter(this); // 将 HALCON 图像绘制到当前控件上... // 这里省略具体绘图逻辑,实际项目应根据需求补充这部分内容 } ``` #### 主窗体设计 构建应用程序的主要框架结构,包括菜单栏、工具条以及状态栏等功能组件的设计工作。通过这些UI元素可以让用户体验更加友好便捷的操作流程。 ```cpp // mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void on_actionOpen_triggered(); // 打开文件槽函数声明 private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H ``` ```cpp // mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_actionOpen_triggered(){ QString fileName = QFileDialog::getOpenFileName(this, tr("打开图像"), "", tr("Images (*.png *.xpm *.jpg)")); if (!fileName.isEmpty()){ // 使用Halconc读取并处理图像... // 此处应该加入具体的Halcon代码片段 update(); // 刷新界面以反映最新变化 } } ``` 以上展示了如何创建基本的Qt GUI工程并Halcon相结合的基础方法。需要注意的是,上述例子仅提供了一个大致思路,对于特定应用场景可能还需进一步调整优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值