• QT QAxWidget控件 使用详解


            本文详细的介绍了QAxWidget控件的各种操作,例如:新建界面使用示例显示网页显示pdf显示Off源文件详细说明其它文章等等操作。

            ActiveX控件是一种可重用的二进制组件,用于在Windows操作系统上提供特定的功能和服务。以下是一些常见的ActiveX控件的示例:1. Internet Explorer Web Browser Control:用于在应用程序中嵌入和显示Web浏览器。2. Microsoft Office组件(如Word、Excel、PowerPoint):用于在应用程序中嵌入和操作Office文档。3. Windows Media Player Control:用于在应用程序中嵌入和播放音频和视频文件。4. Adobe Flash Player Control:用于在应用程序中嵌入和播放Flash动画和视频。5. Crystal Reports Viewer Control:用于在应用程序中显示和打印Crystal Reports报表6. Windows Common Controls(如TreeView、ListView、ProgressBar):用于在应用程序中创建常见的用户界面控件。7. Microsoft DataGrid Control:用于在应用程序中显示和编辑数据表格。8. Microsoft Windows Image Acquisition Control:用于在应用程序中获取和处理图像。9. Microsoft Windows Media Encoder Control:用于在应用程序中进行音频和视频编码。

            本系列QT全面详解文章目前共有三十八篇,本系列文章较为详细的讲述了QT控件的基础操作和使用,也谢谢大家的关注、点赞、收藏。

     本文作者原创,转载请附上文章出处与本文链接。

    QT QAxWidget控件 使用详解目录

    1 新建界面

    2 使用示例

    3 显示网页

    4 显示pdf

    5 显示Off

    6 源文件

    7 详细说明

    8 其它文章


    1 新建界面

    2 使用示例

    1. // ui->axWidget->setControl("{8856F961-340A-11D0-A96B-00C04FD705A2}");
    2. // ui->axWidget->dynamicCall("MethodName", "123", "hello");
    3. // QVariant value = ui->axWidget->dynamicCall("PropertyName");

    3 显示网页

    1. ui->axWidget->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}"));//注册组件ID
    2. ui->axWidget->setProperty("DisplayAlerts",false);//不显示警告信息
    3. ui->axWidget->setProperty("DisplayScrollBars",true);//不显示滚动条
    4. QString webstr=QString("www.baidu.com");//设置要打开的网页
    5. ui->axWidget->dynamicCall("Navigate(const QString&)",webstr);//显示网页

    4 显示pdf

    1. // QString msFilePath;
    2. // msFilePath = "D:/t.pdf";
    3. // mpAxWidgetPdf = new QAxWidget("AcroPDF.PDF", this->ui->widget);//Excel.Application //Adobe Acrobat Reader
    4. // mpAxWidgetOff = new QAxWidget("Word.Application", this->ui->widget_2);
    5. // // 创建一个QAxWidget对象,并设置其控制为Excel.Application
    6. // // 注释中提到不显示窗体,设置DisplayAlerts为false
    7. // mpAxWidgetPdf->dynamicCall("SetVisible (bool Visible)", "false");
    8. // mpAxWidgetPdf->setProperty("DisplayAlerts", true);
    9. // auto rect = ui->widget->geometry();
    10. // mpAxWidgetPdf->setGeometry(rect);
    11. // mpAxWidgetPdf->setControl(msFilePath);
    12. // mpAxWidgetPdf->show();

    5 显示Off

    1. // // 创建一个QAxWidget对象,并设置其控制为Word.Application
    2. // // 注释中提到不显示窗体,设置DisplayAlerts为true
    3. // mpAxWidgetOff->dynamicCall("SetVisible (bool Visible)", "false");
    4. // mpAxWidgetOff->setProperty("DisplayAlerts", true);
    5. // rect = this->ui->widget_2->geometry();
    6. // mpAxWidgetOff->setGeometry(rect);
    7. // mpAxWidgetOff->setControl(msFilePath);
    8. // mpAxWidgetOff->show();

    6 源文件

    1. #ifndef MAINWINDOW_H
    2. #define MAINWINDOW_H
    3. #include
    4. #include
    5. //加入GBK申明,否则中文乱码 全局使用GBK文件操作因为有中文所以使用
    6. #pragma execution_character_set("utf-8")
    7. QT_BEGIN_NAMESPACE
    8. namespace Ui { class MainWindow; }
    9. QT_END_NAMESPACE
    10. class MainWindow : public QMainWindow
    11. {
    12. Q_OBJECT
    13. public:
    14. MainWindow(QWidget *parent = nullptr);
    15. ~MainWindow();
    16. private:
    17. Ui::MainWindow *ui;
    18. QString Title;
    19. QString Version;
    20. QString BlogText;
    21. QAxWidget* mpAxWidgetPdf;
    22. QAxWidget* mpAxWidgetOff;
    23. };
    24. #endif // MAINWINDOW_H
    1. #include "mainwindow.h"
    2. #include "ui_mainwindow.h"
    3. #include
    4. #include
    5. //#include "office.h"
    6. MainWindow::MainWindow(QWidget *parent)
    7. : QMainWindow(parent)
    8. , ui(new Ui::MainWindow)
    9. {
    10. ui->setupUi(this);
    11. Title = "QT QAxWidget CSDN 双子座断点 ";
    12. Version = "V 1.0 ";
    13. BlogText = "https://blog.csdn.net/qq_37529913?type=lately/";
    14. setWindowTitle(Title + Version + BlogText);
    15. // ui->axWidget->setControl("{8856F961-340A-11D0-A96B-00C04FD705A2}");
    16. // ui->axWidget->dynamicCall("MethodName", "123", "hello");
    17. // QVariant value = ui->axWidget->dynamicCall("PropertyName");
    18. // qDebug() << value;
    19. ui->axWidget->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}"));//注册组件ID
    20. ui->axWidget->setProperty("DisplayAlerts",false);//不显示警告信息
    21. ui->axWidget->setProperty("DisplayScrollBars",true);//不显示滚动条
    22. QString webstr=QString("www.baidu.com");//设置要打开的网页
    23. ui->axWidget->dynamicCall("Navigate(const QString&)",webstr);//显示网页
    24. // QString msFilePath;
    25. // msFilePath = "D:/t.pdf";
    26. // mpAxWidgetPdf = new QAxWidget("AcroPDF.PDF", this->ui->widget);//Excel.Application //Adobe Acrobat Reader
    27. // mpAxWidgetOff = new QAxWidget("Word.Application", this->ui->widget_2);
    28. // // 创建一个QAxWidget对象,并设置其控制为Excel.Application
    29. // // 注释中提到不显示窗体,设置DisplayAlerts为false
    30. // mpAxWidgetPdf->dynamicCall("SetVisible (bool Visible)", "false");
    31. // mpAxWidgetPdf->setProperty("DisplayAlerts", true);
    32. // auto rect = ui->widget->geometry();
    33. // mpAxWidgetPdf->setGeometry(rect);
    34. // mpAxWidgetPdf->setControl(msFilePath);
    35. // mpAxWidgetPdf->show();
    36. // // 创建一个QAxWidget对象,并设置其控制为Word.Application
    37. // // 注释中提到不显示窗体,设置DisplayAlerts为true
    38. // mpAxWidgetOff->dynamicCall("SetVisible (bool Visible)", "false");
    39. // mpAxWidgetOff->setProperty("DisplayAlerts", true);
    40. // rect = this->ui->widget_2->geometry();
    41. // mpAxWidgetOff->setGeometry(rect);
    42. // mpAxWidgetOff->setControl(msFilePath);
    43. // mpAxWidgetOff->show();
    44. }
    45. MainWindow::~MainWindow()
    46. {
    47. delete ui;
    48. }

    7 详细说明

        因为博主没有安装组件所以会失败,暂时没有涉及到这个的业务工作所以没有深入展开研究下去,把实现代码贴出来供参考

    1. 1. QVariant(Invalid):这表示QVariant对象的值无效。可能是由于未正确初始化或设置对象的属性导致的。请确保在使用QVariant对象之前正确初始化和设置其值。
    2. 2. CoCreateInstance failure (没有注册类):这表示无法创建指定类的实例。可能是由于未正确注册类或缺少相关的组件导致的。请确保所需的类已正确注册,并且系统中已安装了相关的组件。
    3. 3. QAxBase::setControl: requested control AcroPDF.PDF could not be instantiated:这表示无法实例化请求的控件。可能是由于控件未正确安装或未正确注册导致的。请确保所需的控件已正确安装,并且系统中已注册该控件。
    4. 4. QAxBase::dynamicCallHelper: Object is not initialized, or initialization failed:这表示对象未初始化或初始化失败。可能是由于对象的初始化过程中出现了错误或问题导致的。请确保在使用对象之前正确初始化对象,并检查初始化过程中是否有任何错误。
    5. 要解决这些问题,您可以尝试以下步骤:
    6. 1. 确保所需的控件已正确安装并注册。如果您使用的是Adobe Acrobat Reader控件来显示PDF文件,请确保已正确安装Adobe Acrobat Reader,并且系统中已注册该控件。
    7. 2. 检查代码中是否正确设置了控件的属性和参数。请确保在使用QAxWidget对象之前正确设置其属性和参数,以确保正确的初始化和实例化。
    8. 3. 确保您的应用程序具有足够的权限来访问所需的控件和组件。请检查您的应用程序的权限设置,并确保它具有访问所需控件和组件的权限

    8 其它文章

    QT TextEdit控件_双子座断点的博客-CSDN博客_qt textedit

    QT QComboBox使用详解_双子座断点的博客-CSDN博客

    QT QtableView操作详解_双子座断点的博客-CSDN博客_qtableview增删改查

    Qt QStandardItemModel(1.超级详细用法)_双子座断点的博客-CSDN博客_qstandardmodel

    Qt QStandardItemModel(2.超级详细函数)_双子座断点的博客-CSDN博客_qstandarditemmodel点击事件

    QT QRadioButton使用详解_双子座断点的博客-CSDN博客_qt radiobutton

    QT QLineEdit使用详解_双子座断点的博客-CSDN博客_qt qlineedit

    Qt QMessageBox使用详解_双子座断点的博客-CSDN博客_qt message

    QChart折线图、饼状图、条形图、曲线图_双子座断点的博客-CSDN博客_qchart样式

    QChart属性详解_双子座断点的博客-CSDN博客_setanimationoptions

    QCharts QValueAxis使用_双子座断点的博客-CSDN博客_qvalueaxis

    Qt 5 等待提示框(开源 动态图)_双子座断点的博客-CSDN博客_qt 等待对话框

    QtDataVisualization 数据3D可视化_双子座断点的博客-CSDN博客_qtdatavisualizatio

    QT QSpinBox 整数计数器控件 使用详解_双子座断点的博客-CSDN博客
    QT QDoubleSpinBox 浮点计数器控件(使用详解)_双子座断点的博客-CSDN博客_qdoublespinbox信号槽
    QT QSlider、QHorizontalSlider、QVerticalSlider 控件 使用详解_双子座断点的博客-CSDN博客_qslider设置步长

    QT QTabWidget 控件 使用详解_双子座断点的博客-CSDN博客

    QT QCalendarWidget控件 使用详解_双子座断点的博客-CSDN博客

    QT QStackedWidget 控件 使用详解_双子座断点的博客-CSDN博客

    QT QVBoxLayout 垂直布局控件_双子座断点的博客-CSDN博客

    QT QHBoxLayout 水平布局控件_双子座断点的博客-CSDN博客
    QT QGridLayout网格布局控件_双子座断点的博客-CSDN博客

    QT QVerticalSpacer 弹簧控件_双子座断点的博客-CSDN博客
    QT QHorizontalSpacer弹簧控件_双子座断点的博客-CSDN博客
    QT QLine 使用详解_双子座断点的博客-CSDN博客
    QT QFontComboBox 使用详解_双子座断点的博客-CSDN博客

    QT QScrollArea控件 使用详解_双子座断点的博客-CSDN博客

    QT QToolBox控件使用详解_双子座断点的博客-CSDN博客

    QT QFrame控件使用详解_双子座断点的博客-CSDN博客
    QT QMdiArea控件 使用详解_双子座断点的博客-CSDN博客

  • 相关阅读:
    使用 wxPython 在 Windows 11 中实现任务栏通知功能
    SSH 远程管理软件 SecureCRT 下载安装教程
    C和指针 第15章 输入/输出函数 15.5 流I/O总览
    gitlab有哪些metrics
    hardhat开发dapp初始化操作
    [附源码]计算机毕业设计springboot-菜篮子系统
    QT通过TCP协议发送结构体数据
    C++要笑着学:非类型模板参数 | 模板的特化
    题目:2725.间隔取消
    C语言学习-数组应用-扫雷(4.2)
  • 原文地址:https://blog.csdn.net/qq_37529913/article/details/132819695