首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 【CC++ Qt shared_ptr | make_shared | QSharedPointer 】绕圈圈

    在 Qt5.15 之前的版本中,Qt::make_shared 用于创建 QSharedPointer。 std::shared_ptr 和 QSharedPointer: 这两个类模板都实现了共享所有权的智能指针,它们通过引用计数来管理对象的生命周期。 命名空间和使用场景: 命名空间确实不同,std::shared_ptr 位于 std 命名空间中,而 QSharedPointer 位于 Qt 的命名空间中。 std::shared_ptr 和 QSharedPointer 在功能上相似,但它们分别属于不同的库,并且在某些特定场景下可能更适合使用其中一个。 在 Qt 应用程序中,通常推荐使用 QSharedPointer,因为它可能更好地与 Qt 的其他特性集成。

    12710编辑于 2026-01-23
  • 来自专栏编程

    Qt QList<std::unique_ptr<Contact>> 的问题

    例如,可以创建一个自定义的包装类 UniqueConcatWrapper,如下所示: struct UniqueConcatWrapper { QSharedPointer<Contact> ptr ; UniqueConcatWrapper(QSharedPointer<Contact> ptr) : ptr(ptr) {} }; class ContactView : public QListView { QList<UniqueConcatWrapper> m_contacts; }; m_contacts.emplace_back(QSharedPointer<Contact>(new (QSharedPointer<Contact>(new Contact("", ""))); m_contacts.emplace_back(QSharedPointer<Contact>(new Contact ("", ""))); m_contacts.emplace_back(QSharedPointer<Contact>(new Contact("", "")));

    33810编辑于 2024-10-28
  • 来自专栏全栈程序员必看

    ctk加载插件「建议收藏」

    /ctk plugin ctkPluginFrameworkFactory* ctkFrameWorkFactory = new ctkPluginFrameworkFactory; QSharedPointer } //install plugin ctkPluginContext* pluginContext = framework->getPluginContext(); QSharedPointer

    1K30编辑于 2022-09-06
  • 来自专栏全栈程序员必看

    Qt面试题整理

    QSharedPointer QSharedArrayPointer 与 std::shared_ptr QSharedPointer 与 std::shared_ptr 行为最接近原始指针,是最像指针的 QWeakPointer 与 std::weak_ptr 强引用类型的QSharedPointer已经非常好用,为什么还要有弱引用的 QWeakPointer? QWeakPointer 是为配合 QSharedPointer 而引入的一种智能指针,它更像是 QSharedPointer 的一个助手(因为它不具有普通指针的行为,没有重载operator*和->) 它的最大作用在于协助 QSharedPointer 工作,像一个旁观者一样来观测资源的使用情况。 weak_ptr 主要是为了避免强引用形成环状。 它可以作为QPointer的替代品 这种情况下,不需要QSharedPointer的存在 5.

    2.6K10编辑于 2022-09-12
  • 来自专栏全栈程序员必看

    ctk框架搭建(一) ctk框架插件加载与项目结构

    a.setApplicationName("ctkExample");//给框架创建名称,Linux下没有这步会报错 ctkPluginFrameworkFactory factory;//插件工厂类 QSharedPointer 其中QSharedPointer<ctkPluginFramework> framework这个对象比较有意思,既可以作为对象也可以作为对象指针,但要作为插件框架使用必须要用指针方法调用,所以代码里使用

    1.9K20编辑于 2022-09-06
  • 来自专栏全栈程序员必看

    QcustomPlot 多条单条曲线光标自动更随的实现

    MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); m_Plot = QSharedPointer >axis(QCPAxis::atBottom, 0)->setPadding(10); // add some padding to have space for tags m_TraserX = QSharedPointer m_TraserX->setText(QString::number(x, 'f', 2)); for(int i=0;i<m_Graph.size();i++) { double y = 0; QSharedPointer

    2.8K20编辑于 2022-11-03
  • 来自专栏全栈程序员必看

    C++中的智能指针

    在上面的例子中,可以改为代码: void test() { QSharedPointer<BBE> n(new BBE); n->X = 10; n->Y = 20; n

    1.1K30编辑于 2022-07-09
  • 来自专栏全栈程序员必看

    qcustomplot绘图[通俗易懂]

    QString::number(i,10); labels << QString::asprintf("label%1").arg(i); count += 1; } } //共享指针,坐标轴设置 QSharedPointer 2 <<3 <<4 <<5 <<6 <<7; labels<< "USA" << "Japan" <<"Germany" <<"France" <<"UK"<<"Italia"<<"Canada"; QSharedPointer 2 <<3 <<4 <<5 <<6 <<7; labels<< "USA" << "Japan" <<"Germany" <<"France" <<"UK"<<"Italia"<<"Canada"; QSharedPointer 2 <<3 <<4 <<5 <<6 <<7; labels<< "USA" << "Japan" <<"Germany" <<"France" <<"UK"<<"Italia"<<"Canada"; QSharedPointer MMMM\nyyyy"); customPlot->xAxis->setTicker(dateTicker); //configure left axis text label: QSharedPointer

    5K30编辑于 2022-11-07
  • 来自专栏全栈程序员必看

    CTK插件框架学习4-创建跨平台插件工程「建议收藏」

    *argv[]) { QCoreApplication a(argc, argv); ctkPluginFrameworkFactory frameworkFactory; QSharedPointer pluginContext = framework->getPluginContext(); // 安装启动插件appinfo try { // 安装插件 QSharedPointer plugin: ") << e.what(); return -2; } // 安装启动插件sysinfo try { // 安装插件 QSharedPointer

    1.9K10编辑于 2022-09-01
  • 来自专栏Qt6 研发工程师

    Qt | 安全的udp客户端搭建(代码框架值得学习)

    03、QSharedPointer>>>QSharedPointer 是 Qt 框架中提供的一个智能指针类,用于管理动态分配的对象。在 C++ 中,使用智能指针可以避免内存泄漏和资源管理问题。 QSharedPointer 实现了引用计数,当最后一个引用被销毁时,所管理的对象会被自动删除。 MAINWINDOW_H // 定义 MAINWINDOW_H,避免重复包含​#include <QMainWindow> // 包含 QMainWindow 头文件,用于创建主窗口#include <QSharedPointer > // 包含 QSharedPointer 头文件,用于使用共享指针#include <QList> // 包含 QList 头文件,用于使用 QList 容器​QT_BEGIN_NAMESPACE 启动新连接的私有函数声明​ Ui::MainWindow *ui = nullptr; // 指向 Ui::MainWindow 的指针,初始化为 nullptr​ using AssocPtr = QSharedPointer

    95710编辑于 2024-12-15
  • 【Qt Qt的信号和槽传递机制支持的数据格式】

    其他类型 智能指针:如QSharedPointer、QWeakPointer等。 函数指针:可以传递函数指针作为信号和槽的参数。 总之,Qt的信号和槽机制非常灵活,支持多种数据格式的传递。

    10410编辑于 2026-01-23
  • 来自专栏Linux驱动

    27.C++- 智能指针

    再来深入描述) -QPointer 头文件<QPointer> 当其指向的对象被销毁时,他会被自动置空(避免被多次释放和野指针) 缺点在于,该模板类析构时,不会自动摧毁所指向的对象(需要手工delete) -QSharedPointer 头文件<QSharedPointer> 带有引用计数机制,支持多个指针对象指向同一片内存(实现共享) 可以被自由地拷贝和赋值 当引用计数为0(最后一个指针被摧毁)时,才删除指向的对象(和shared_ptr

    954100发布于 2018-04-17
  • 来自专栏全栈程序员必看

    CTK插件框架学习3-第一个插件编写

    *argv[]) { QCoreApplication a(argc, argv); ctkPluginFrameworkFactory frameworkFactory; QSharedPointer ctkPluginContext* pluginContext = framework->getPluginContext(); try { // 安装插件 QSharedPointer

    1.4K20编辑于 2022-08-30
  • 来自专栏全栈程序员必看

    QCustomPlot使用

    ; customPlot->yAxis2->setRange(-70, 35); // set pi ticks on top axis: customPlot->xAxis2->setTicker(QSharedPointer customPlot->graph()->data()->set(timeData); } // configure bottom axis to show date instead of number: QSharedPointer MMMM\nyyyy"); customPlot->xAxis->setTicker(dateTicker); // configure left axis text labels: QSharedPointer : void MainWindow::addNewData() { QSharedPointer< QCPGraphDataContainer > dataContainer; dataContainer setDateTimeFormat("hh:mm:ss"); ui->customplot->xAxis->setDateTimeSpec(Qt::LocalTime); 2.0版本中设置时间轴 //设置X轴时间刻度 QSharedPointer

    4.9K120编辑于 2022-11-02
  • 来自专栏Dotnet9

    CTK完整教程(OSGI for C++ 实现 C++ Qt 模块化)

    其中QSharedPointer framework这个对象比较有意思,既可以作为对象也可以作为对象指针,但要作为插件框架使用必须要用指针方法调用,所以代码里使用“->”。 dir += "/plugins/HelloCTK.dll"; qDebug() << dir; QUrl url = QUrl::fromLocalFile(dir); QSharedPointer event.isNull()) { QSharedPointer<ctkPlugin> plugin = event.getPlugin(); qDebug() << " event.isNull()) { QSharedPointer<ctkPlugin> plugin = event.getPlugin(); qDebug() << " event.isNull()) { ctkServiceReference ref = event.getServiceReference(); QSharedPointer

    10.5K13编辑于 2022-04-18
  • 来自专栏全栈程序员必看

    QCustomPlot配置[通俗易懂]

    MMMM\nyyyy"); customPlot->xAxis->setTicker(dateTicker); // configure left axis text labels: QSharedPointer setScaleType(QCPAxis::stLogarithmic); customPlot->yAxis2->setScaleType(QCPAxis::stLogarithmic); QSharedPointer << 6 << 7; labels << "USA" << "Japan" << "Germany" << "France" << "UK" << "Italy" << "Canada"; QSharedPointer (false); customPlot->xAxis->setTickLength(0, 4); customPlot->xAxis->setTickLabelRotation(20); QSharedPointer subBars->rescaleAxes(); // setup a ticker for subBars key axis that only gives integer ticks: QSharedPointer

    1.9K10编辑于 2022-09-27
  • 来自专栏全栈程序员必看

    Qt中使用匿名函数lambda表达式

    如代码: #include <QCoreApplication> #include <QDebug> #include <QSharedPointer> int func2(int i) { i

    97220编辑于 2022-07-09
  • 来自专栏QT开发

    QT客户端开发的代码优化

    内存管理优化:避免内存泄漏: 使用 QT 的智能指针(如 QSharedPointer、QScopedPointer)管理对象,避免手动释放内存。

    56110编辑于 2024-12-16
  • 来自专栏QT开发

    Qt 性能优化策略和技巧

    2.内存管理优化2.1避免内存泄漏使用智能指针:使用 QSharedPointer 或 QScopedPointer 管理动态内存,避免手动释放内存。检查对象树:确保父对象析构时子对象被正确释放。

    1.7K10编辑于 2025-02-17
  • 来自专栏QT开发

    Qt开发框架及特点

    高效的内存管理:支持智能指针(如 QSharedPointer、QScopedPointer)。1.2Qt GUI功能:提供基础的 GUI 功能,如窗口管理、绘图、字体、图像处理等。

    1.4K10编辑于 2025-02-17
领券