请教怎么把qt的“应用程序输出”显示到QTextEdit上去

杀别人能摸牌 2017-06-21 05:27:31
在QT里面的时候,可以看到这些:

但是发布软件之后,不经过QT打开编好的软件时,这些信息就看不到了,有什么办法让它们显示在软件界面的QTextEdit中去吗,像是这样子:

多谢!
...全文
4317 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
qInstallMessageHandler并不能实现标准输出重定向
杀别人能摸牌 2017-06-28
  • 打赏
  • 举报
回复
引用 16 楼 jklinux 的回复:
[quote=引用 14 楼 sinat_39088557 的回复:] [quote=引用 13 楼 namezdd 的回复:] 可以用qInstallMessageHandler实现
这个可以输出cout的吗[/quote] qInstallMessageHandler确实可以重定向输出,我长知识了. cout是从标准输出输出的, qDebug()是从标准错误输出的 你现在可以两种选择: 1). 用qInstallMessageHandler来改qDebug()从标准输出输出, 参考楼上代码.

  void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
  {
      QByteArray localMsg = msg.toLocal8Bit();
      switch (type) {
      case QtDebugMsg:
          fprintf(stdout, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          break;
        ....
      }
  }
 
  int main(int argc, char **argv)
  {
      qInstallMessageHandler(myMessageOutput);
     ...
      return app.exec();
  }
2. 把从标准错误输出重定向到标准输出去. 我只会linux系统上的:

           #include <unistd.h>

         int main(int argc, char *argv[])
        {
             dup2(2, 1); //标准错误输出的文件描述符是2, 标准输出是1   
             //然后用qDebug()时就会像cout一样的输出了
             ...
      }
[/quote] 啊我现在在弄另外一个东西,弄好了再来试试这个
杀别人能摸牌 2017-06-28
  • 打赏
  • 举报
回复
引用 15 楼 llq108 的回复:

#include <qcoreapplication.h>
#include <stdio.h>
#include <stdlib.h>

  void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
  {
      QByteArray localMsg = msg.toLocal8Bit();
      switch (type) {
      case QtDebugMsg:
          fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          break;
      case QtInfoMsg:
          fprintf(stderr, "Info: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          break;
      case QtWarningMsg:
          fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          break;
      case QtCriticalMsg:
          fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          break;
      case QtFatalMsg:
          fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          abort();
      }
  }

  int main(int argc, char **argv)
  {
      qInstallMessageHandler(myMessageOutput);
      QCoreApplication app(argc, argv);
      qInfo()<<"hello world";
      return app.exec();
  }
qInstallMessageHandler,学到了。
谢谢,改天试一下
jklinux 2017-06-24
  • 打赏
  • 举报
回复
引用 14 楼 sinat_39088557 的回复:
[quote=引用 13 楼 namezdd 的回复:] 可以用qInstallMessageHandler实现
这个可以输出cout的吗[/quote] qInstallMessageHandler确实可以重定向输出,我长知识了. cout是从标准输出输出的, qDebug()是从标准错误输出的 你现在可以两种选择: 1). 用qInstallMessageHandler来改qDebug()从标准输出输出, 参考楼上代码.

  void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
  {
      QByteArray localMsg = msg.toLocal8Bit();
      switch (type) {
      case QtDebugMsg:
          fprintf(stdout, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          break;
        ....
      }
  }
 
  int main(int argc, char **argv)
  {
      qInstallMessageHandler(myMessageOutput);
     ...
      return app.exec();
  }
2. 把从标准错误输出重定向到标准输出去. 我只会linux系统上的:

           #include <unistd.h>

         int main(int argc, char *argv[])
        {
             dup2(2, 1); //标准错误输出的文件描述符是2, 标准输出是1   
             //然后用qDebug()时就会像cout一样的输出了
             ...
      }
jklinux 2017-06-23
  • 打赏
  • 举报
回复
引用 9 楼 sinat_39088557 的回复:
[quote=引用 7 楼 jklinux 的回复:] [quote=引用 6 楼 sinat_39088557 的回复:] [quote=引用 5 楼 jklinux 的回复:] [quote=引用 4 楼 sinat_39088557 的回复:] [quote=引用 2 楼 namezdd 的回复:] 第一张图里应该是你自己qDebug出来的信息吧,这些信息只要ui->lineEdit->setText()就能显示到界面上;第二张图里的error应该是Qt自己qDebug出来的信息,你获取不到吧
我就是想把QT自己弄出来的消息全部显示到那个面板,然后发现并不会。如果是qDebug出来的,倒是可以在下面加一行settext,但还有一些动态链接库里面也有cout的东西,就不知道怎么弄出来了[/quote] 应可以额外再写一个程序, 程序里用QProcess对象来调用你现程序, 然后就可以捕捉QProcess的信号readyRead(), 在连接的槽里调用QProcess对象的readAll()函数就可以获取到整个程序的输出, 然后再输出到QTextEdit对象就可以了[/quote] 谢谢呀,这样子可以脱离qt获得cout里面的东西了,就是不知道可不可以不依赖另外一个程序呢?如果Qprocess自己打开自己就会无限打开了[/quote] 肯定不能程序里又调用本身程序了, 所以需要额外再写一个程序[/quote] 所以自己不能获取自己的输出哇,略带遗憾[/quote] 其实硬要用一个程序也可以用个歪招,通过main函数的argc, argv参数来区分是自己调用程序本身的,还是直接执行的。 用QProcess调用程序时,传约定的参数就可以了
杀别人能摸牌 2017-06-23
  • 打赏
  • 举报
回复
引用 7 楼 jklinux 的回复:
[quote=引用 6 楼 sinat_39088557 的回复:] [quote=引用 5 楼 jklinux 的回复:] [quote=引用 4 楼 sinat_39088557 的回复:] [quote=引用 2 楼 namezdd 的回复:] 第一张图里应该是你自己qDebug出来的信息吧,这些信息只要ui->lineEdit->setText()就能显示到界面上;第二张图里的error应该是Qt自己qDebug出来的信息,你获取不到吧
我就是想把QT自己弄出来的消息全部显示到那个面板,然后发现并不会。如果是qDebug出来的,倒是可以在下面加一行settext,但还有一些动态链接库里面也有cout的东西,就不知道怎么弄出来了[/quote] 应可以额外再写一个程序, 程序里用QProcess对象来调用你现程序, 然后就可以捕捉QProcess的信号readyRead(), 在连接的槽里调用QProcess对象的readAll()函数就可以获取到整个程序的输出, 然后再输出到QTextEdit对象就可以了[/quote] 谢谢呀,这样子可以脱离qt获得cout里面的东西了,就是不知道可不可以不依赖另外一个程序呢?如果Qprocess自己打开自己就会无限打开了[/quote] 肯定不能程序里又调用本身程序了, 所以需要额外再写一个程序[/quote] 所以自己不能获取自己的输出哇,略带遗憾
jklinux 2017-06-23
  • 打赏
  • 举报
回复
引用 7 楼 jklinux 的回复:
[quote=引用 6 楼 sinat_39088557 的回复:] [quote=引用 5 楼 jklinux 的回复:] [quote=引用 4 楼 sinat_39088557 的回复:] [quote=引用 2 楼 namezdd 的回复:] 第一张图里应该是你自己qDebug出来的信息吧,这些信息只要ui->lineEdit->setText()就能显示到界面上;第二张图里的error应该是Qt自己qDebug出来的信息,你获取不到吧
我就是想把QT自己弄出来的消息全部显示到那个面板,然后发现并不会。如果是qDebug出来的,倒是可以在下面加一行settext,但还有一些动态链接库里面也有cout的东西,就不知道怎么弄出来了[/quote] 应可以额外再写一个程序, 程序里用QProcess对象来调用你现程序, 然后就可以捕捉QProcess的信号readyRead(), 在连接的槽里调用QProcess对象的readAll()函数就可以获取到整个程序的输出, 然后再输出到QTextEdit对象就可以了[/quote] 谢谢呀,这样子可以脱离qt获得cout里面的东西了,就是不知道可不可以不依赖另外一个程序呢?如果Qprocess自己打开自己就会无限打开了[/quote] 肯定不能程序里又调用本身程序了, 所以需要额外再写一个程序[/quote] 其实硬要用一个程序也可以用个歪招,通过main函数的argc, argv参数来区分是自己调用程序本身的,还是直接执行的。 用QProcess调用程序时,传约定的参数就可以了
jklinux 2017-06-23
  • 打赏
  • 举报
回复
引用 6 楼 sinat_39088557 的回复:
[quote=引用 5 楼 jklinux 的回复:] [quote=引用 4 楼 sinat_39088557 的回复:] [quote=引用 2 楼 namezdd 的回复:] 第一张图里应该是你自己qDebug出来的信息吧,这些信息只要ui->lineEdit->setText()就能显示到界面上;第二张图里的error应该是Qt自己qDebug出来的信息,你获取不到吧
我就是想把QT自己弄出来的消息全部显示到那个面板,然后发现并不会。如果是qDebug出来的,倒是可以在下面加一行settext,但还有一些动态链接库里面也有cout的东西,就不知道怎么弄出来了[/quote] 应可以额外再写一个程序, 程序里用QProcess对象来调用你现程序, 然后就可以捕捉QProcess的信号readyRead(), 在连接的槽里调用QProcess对象的readAll()函数就可以获取到整个程序的输出, 然后再输出到QTextEdit对象就可以了[/quote] 谢谢呀,这样子可以脱离qt获得cout里面的东西了,就是不知道可不可以不依赖另外一个程序呢?如果Qprocess自己打开自己就会无限打开了[/quote] 肯定不能程序里又调用本身程序了, 所以需要额外再写一个程序
杀别人能摸牌 2017-06-23
  • 打赏
  • 举报
回复
引用 5 楼 jklinux 的回复:
[quote=引用 4 楼 sinat_39088557 的回复:] [quote=引用 2 楼 namezdd 的回复:] 第一张图里应该是你自己qDebug出来的信息吧,这些信息只要ui->lineEdit->setText()就能显示到界面上;第二张图里的error应该是Qt自己qDebug出来的信息,你获取不到吧
我就是想把QT自己弄出来的消息全部显示到那个面板,然后发现并不会。如果是qDebug出来的,倒是可以在下面加一行settext,但还有一些动态链接库里面也有cout的东西,就不知道怎么弄出来了[/quote] 应可以额外再写一个程序, 程序里用QProcess对象来调用你现程序, 然后就可以捕捉QProcess的信号readyRead(), 在连接的槽里调用QProcess对象的readAll()函数就可以获取到整个程序的输出, 然后再输出到QTextEdit对象就可以了[/quote] 谢谢呀,这样子可以脱离qt获得cout里面的东西了,就是不知道可不可以不依赖另外一个程序呢?如果Qprocess自己打开自己就会无限打开了
jklinux 2017-06-23
  • 打赏
  • 举报
回复
引用 4 楼 sinat_39088557 的回复:
[quote=引用 2 楼 namezdd 的回复:] 第一张图里应该是你自己qDebug出来的信息吧,这些信息只要ui->lineEdit->setText()就能显示到界面上;第二张图里的error应该是Qt自己qDebug出来的信息,你获取不到吧
我就是想把QT自己弄出来的消息全部显示到那个面板,然后发现并不会。如果是qDebug出来的,倒是可以在下面加一行settext,但还有一些动态链接库里面也有cout的东西,就不知道怎么弄出来了[/quote] 应可以额外再写一个程序, 程序里用QProcess对象来调用你现程序, 然后就可以捕捉QProcess的信号readyRead(), 在连接的槽里调用QProcess对象的readAll()函数就可以获取到整个程序的输出, 然后再输出到QTextEdit对象就可以了
ronal7do 2017-06-23
  • 打赏
  • 举报
回复

#include <qcoreapplication.h>
#include <stdio.h>
#include <stdlib.h>

  void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
  {
      QByteArray localMsg = msg.toLocal8Bit();
      switch (type) {
      case QtDebugMsg:
          fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          break;
      case QtInfoMsg:
          fprintf(stderr, "Info: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          break;
      case QtWarningMsg:
          fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          break;
      case QtCriticalMsg:
          fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          break;
      case QtFatalMsg:
          fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
          abort();
      }
  }

  int main(int argc, char **argv)
  {
      qInstallMessageHandler(myMessageOutput);
      QCoreApplication app(argc, argv);
      qInfo()<<"hello world";
      return app.exec();
  }
qInstallMessageHandler,学到了。
杀别人能摸牌 2017-06-23
  • 打赏
  • 举报
回复
引用 13 楼 namezdd 的回复:
可以用qInstallMessageHandler实现
这个可以输出cout的吗
namezdd 2017-06-23
  • 打赏
  • 举报
回复
可以用qInstallMessageHandler实现
杀别人能摸牌 2017-06-23
  • 打赏
  • 举报
回复
引用 10 楼 jklinux 的回复:
[quote=引用 9 楼 sinat_39088557 的回复:] [quote=引用 7 楼 jklinux 的回复:] [quote=引用 6 楼 sinat_39088557 的回复:] [quote=引用 5 楼 jklinux 的回复:] [quote=引用 4 楼 sinat_39088557 的回复:] [quote=引用 2 楼 namezdd 的回复:] 第一张图里应该是你自己qDebug出来的信息吧,这些信息只要ui->lineEdit->setText()就能显示到界面上;第二张图里的error应该是Qt自己qDebug出来的信息,你获取不到吧
我就是想把QT自己弄出来的消息全部显示到那个面板,然后发现并不会。如果是qDebug出来的,倒是可以在下面加一行settext,但还有一些动态链接库里面也有cout的东西,就不知道怎么弄出来了[/quote] 应可以额外再写一个程序, 程序里用QProcess对象来调用你现程序, 然后就可以捕捉QProcess的信号readyRead(), 在连接的槽里调用QProcess对象的readAll()函数就可以获取到整个程序的输出, 然后再输出到QTextEdit对象就可以了[/quote] 谢谢呀,这样子可以脱离qt获得cout里面的东西了,就是不知道可不可以不依赖另外一个程序呢?如果Qprocess自己打开自己就会无限打开了[/quote] 肯定不能程序里又调用本身程序了, 所以需要额外再写一个程序[/quote] 所以自己不能获取自己的输出哇,略带遗憾[/quote] 其实硬要用一个程序也可以用个歪招,通过main函数的argc, argv参数来区分是自己调用程序本身的,还是直接执行的。 用QProcess调用程序时,传约定的参数就可以了 [/quote] 想到一个问题,这个只能输出cout的,不能输出qDebug的东西诶
杀别人能摸牌 2017-06-23
  • 打赏
  • 举报
回复 1
引用 10 楼 jklinux 的回复:
[quote=引用 9 楼 sinat_39088557 的回复:] [quote=引用 7 楼 jklinux 的回复:] [quote=引用 6 楼 sinat_39088557 的回复:] [quote=引用 5 楼 jklinux 的回复:] [quote=引用 4 楼 sinat_39088557 的回复:] [quote=引用 2 楼 namezdd 的回复:] 第一张图里应该是你自己qDebug出来的信息吧,这些信息只要ui->lineEdit->setText()就能显示到界面上;第二张图里的error应该是Qt自己qDebug出来的信息,你获取不到吧
我就是想把QT自己弄出来的消息全部显示到那个面板,然后发现并不会。如果是qDebug出来的,倒是可以在下面加一行settext,但还有一些动态链接库里面也有cout的东西,就不知道怎么弄出来了[/quote] 应可以额外再写一个程序, 程序里用QProcess对象来调用你现程序, 然后就可以捕捉QProcess的信号readyRead(), 在连接的槽里调用QProcess对象的readAll()函数就可以获取到整个程序的输出, 然后再输出到QTextEdit对象就可以了[/quote] 谢谢呀,这样子可以脱离qt获得cout里面的东西了,就是不知道可不可以不依赖另外一个程序呢?如果Qprocess自己打开自己就会无限打开了[/quote] 肯定不能程序里又调用本身程序了, 所以需要额外再写一个程序[/quote] 所以自己不能获取自己的输出哇,略带遗憾[/quote] 其实硬要用一个程序也可以用个歪招,通过main函数的argc, argv参数来区分是自己调用程序本身的,还是直接执行的。 用QProcess调用程序时,传约定的参数就可以了 [/quote] 这个玩不来哈哈,我就用上面那个方法好了。谢谢泥//这验证码快看瞎了
namezdd 2017-06-22
  • 打赏
  • 举报
回复
第一张图里应该是你自己qDebug出来的信息吧,这些信息只要ui->lineEdit->setText()就能显示到界面上;第二张图里的error应该是Qt自己qDebug出来的信息,你获取不到吧
trytry1992 2017-06-22
  • 打赏
  • 举报
回复
你用界面上的QTextEdit对象setText不就有了吗。。
杀别人能摸牌 2017-06-22
  • 打赏
  • 举报
回复
引用 2 楼 namezdd 的回复:
第一张图里应该是你自己qDebug出来的信息吧,这些信息只要ui->lineEdit->setText()就能显示到界面上;第二张图里的error应该是Qt自己qDebug出来的信息,你获取不到吧
我就是想把QT自己弄出来的消息全部显示到那个面板,然后发现并不会。如果是qDebug出来的,倒是可以在下面加一行settext,但还有一些动态链接库里面也有cout的东西,就不知道怎么弄出来了
杀别人能摸牌 2017-06-22
  • 打赏
  • 举报
回复
引用 1 楼 trytry1992 的回复:
你用界面上的QTextEdit对象setText不就有了吗。。
qDebug出来的东西可以同时setText一下,但是还有动态链接库里面的输出内容不能似乎不能setText
课程亮点       本课程是PySide6零基础入门与项目实战视频教程,经过精心设计,分为十个章节,制作了141页ppt, 接近70个代码示例,主要讲解PySide6开发环境安装、基础控件与界面布局、项目实战,PySide6程序打包,安装包制作,安装卸载、更新,发布等知识。涵盖从基础概念到高级应用的全方位知识,旨在为你提供一条清晰、系统的学习之路。无论你是编程新手,还是希望深化对PySide6的了解,本课程都能满足你的需求。       教学环境:Win11 64bit、Python3.11、PyCharm、Anacoda。课程大纲第一章:基础篇 PySide6开发环境安装        从Anaconda环境配置开始,带你快速入门Win11/win10下PySide6、PyQt5开发环境的安装与配置,分别介绍PyCharm与VSCode如何配置PySide6,  以及Python AnaConda的基本用法,创建虚拟环境,安装python模块。第二章 控件与布局篇 PySide6常用控件与界面布局使用介绍        深入PySide6中的常用控件与界面布局技巧,通过丰富的实例,掌握PySide6的窗口、布局、控件等核心内容。主要介绍QLabel、QPushButton、QLineEdit、QCheckBox、QComboBox、QTextEditQTextBrowser、QListView与QListWidget、QStackedWidget、QTabWidget、QTableView等控件以及水平垂直布局,弹簧控件,栅格布局,表单布局。第三章 信号槽与事件机制       解锁PySide6的信号槽机制和事件处理技能,让你的应用更加灵活。详细介绍Qt自定义信号槽,跨窗口传递信号;Qt鼠标事件,键盘事件,组合事件,事件过滤。第四章 QMainWindow应用篇       详细介绍QMainWindow的使用,包括菜单栏、工具栏、状态栏和停靠窗口等。第五章 样式表qss与自定义控件        教你如何使用样式表美化应用界面,并创建独特的自定义控件。掌握这些技能后,学员将能够设计出既美观又功能丰富的用户界面。第六章 图表与曲线        引入pyqtgraph,展示如何在PySide6应用中绘制图表和动态曲线。第七章 数据库编程        带你进入数据库编程世界,使用sqlite3与PySide6结合,进行数据存储和管理。第八章 项目实战:高仿有道词典        通过一个高仿有道词典的项目,将所学知识融会贯通,实战演练。课程中将会接入翻译接口,开发一个属于自己的翻译软件。第九章 打包与部署       教你如何将PySide6项目打包成exe,并使用Inno Setup制作安装包,介绍软件更新、卸载策略,让你的应用轻松上线。第十章 课程总结        回顾整个课程的学习内容,巩固知识点,为进一步的学习和应用打下坚实的基础。教学特色       实战案例:每个章节都配备实战案例,让学习者在实践中深化理解。       代码资料全覆盖:提供全套课程代码资料下载,便于学习者随时查阅和复习。       高效学习路径:课程内容结构清晰,由浅入深,适合不同层次的学习者。       本课程提供全部代码与在线答疑。谁应该学习这个课程       对图形界面开发感兴趣的编程新手。       希望提升个人技能,进入或者深耕在GUI开发领域的开发者。       需要快速掌握PySide6进行项目开发的软件工程师。结语        通过本课程的学习,你不仅能掌握PySide6的核心技能,还能通过实战项目提升解决实际问题的能力,最终让你能独立完成专业的GUI应用开发。随着技术的深入,你将发现PySide6不仅仅是一个工具库,它开启的是一扇通往高效、美观应用开发的大门。        开始PySide6的学习之旅,让你的编程之路更加精彩!
目 录 第一章 开发环境 1.1 Qt 简介5 1.2 下载安装 Qt Creator 6 1.3 第一个程序 Hello World 7 第二章 窗体应用 1.1 窗体基类说明 12 1.2 控制窗体大小 13 1.3 窗体初始位置及背景色 13 1.4 修改标题栏图标 14 1.5 移动无边框窗体 16 1.6 去掉标题栏中最大化、最小化按钮 17 1.7 多窗体调用 18 1.8 字体形状窗体 20 第三章 控件应用 1.1 QPushButton按钮 23 1.2 QLabel标签 23 1.3 QLineEdit单行文本 24 1.4 QTextEdit多行文本 25 1.5 QPlainTextEdit多行文本 26 1.6 QComboBox下拉列表框 26 1.7 QFontComboBox字体下拉列表框 27 1.8 QSpinBox控件 28 1.9 QTimeEdit时间控件 29 1.10 QDateEdit日期控件 30 1.11 QScrollBar控件 30 1.12 QRadioButton单选按钮 31 1.13 QCheckBox复选框 32 1.14 QListView 列表控件 34 1.15 QTreeView树控件 34 1.16 QTableView表格控件 35 1.17 QHBoxLayout横向布局 36 1.18 QGridLayout网格布局 37 1.19 QGroupBox控件 38 1.20 QTabWidget控件 39 1.21 QMenu、QToolBar控件 41 1.22 任务栏托盘菜单 43 第四章 组件应用 1.1日历组件 47 1.2登录窗口 48 1.3文件浏览对话框 50 1.4颜色选择对话框 51 1.5进度条实例53 1.6Timer实时更新时间 54 第五章 文件操作 1.1创建文件夹 57 1.2写入文件 58 1.3修改文件内容 60 1.4删除文件 62 1.5修改文件名 63 1.6 INI文件写入操作 65 1.7 INI文件读取操作 68 1.8创建XML文件 71 1.9读取XML文件 72 第六章 图形图像操作 1.1绘制文字 75 1.2绘制线条 75 1.3绘制椭圆 77 1.4显示静态图像 78 1.5显示动态图像 78 1.6图片水平移动 79 1.7图片翻转 80 1.8图片缩放 82 1.9图片中加文字 84 1.10图像扭曲 85 1.11模糊效果 85 1.12着色效果 86 1.13阴影效果 87 1.14透明效果 87 第七章 多媒体应用 1.1音频、视频播放器 90 1.2播放Flash动画 94 1.3播放图片动画 95 第八章 系统操作 1.1获取屏幕分辨率 98 1.2获取本机名、IP地址 98 1.3根据网址获取IP地址 99 1.4判断键盘按下键值 100 1.5获取系统环境变量 101 1.6执行系统命令 102 第九章 注册表 1.0简要说明注册表 105 1.1写入注册表 105 1.2查找注册表 106 1.3修改IE浏览器的默认主页 107 第十章 数据库基础 1.1查询数据库驱动 109 1.2Qodbc连接Access数据库 109 1.3插入数据 111 1.4数据列表 112 1.5操作SQLite数据库 113 1.6SQLite数据库视图管理器 115 第十一章 网络开发 1.1点对点聊天服务端 119 1.2点对点聊天客户端 123 1.3局域网广播聊天 128 1.4SMTP协议发送邮件 148 1.5调用系统DLL判断网络连接状态 152 第十二章 进程与线程 1.1进程管理器 155 1.2线程QThread应用 158 1.3线程QRunnable应用 159 第十三章 数据安全 1.1 QByteArray加密数据 163 1.2 AES加密数据 164 1.3 MD5 加密数据 165 1.4 生成随机数 166 第十四章 打包部署 1.1 FilePacker 打包 169 1.2 Inno Setup 打包 174

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧