精华内容
下载资源
问答
  • 我试图用一些Qwt小部件创建一个Qt 应用程序,但是当我尝试链接Qwt库时,我发现Qt代码中存在分段错误。我使用的是非常简单的Qt程序,只弹出一个空白窗口:连接Qwt库时Qt代码中的分段错误#include #include int main...

    我试图用一些Qwt小部件创建一个Qt  应用程序,但是当我尝试链接Qwt库时,我发现Qt代码中存在分段错误。我使用的是非常简单的Qt程序,只弹出一个空白窗口:连接Qwt库时Qt代码中的分段错误

    #include

    #include

    int main(int argc, char *argv[])

    {

    QApplication app(argc, argv);

    QWidget window;

    window.resize(250, 150);

    window.setWindowTitle("Simple example");

    window.show();

    return app.exec();

    }

    当我编译通常也能正常工作。一旦我将。LIBS += -lqwt添加到我的.pro文件,问题就开始了。它仍然会编译,但是当我尝试运行时会出现分段错误,即使没有任何调用Qwt代码的情况。

    回溯:

    Program received signal SIGSEGV, Segmentation fault.

    QList (this=0x3ea60da418 <:shared_null>) at ../../src/corelib/tools/qlist.h:121

    121 inline QList() : d(&QListData::shared_null) { d->ref.ref(); }

    (gdb) bt

    #0 QList (this=0x3ea60da418 <:shared_null>) at ../../src/corelib/tools/qlist.h:121

    #1 QPrinterInfoPrivate (name=..., this=0x3ea60da400 <:shared_null>) at painting/qprinterinfo_p.h:71

    #2 __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at painting/qprinterinfo.cpp:35

    #3 _GLOBAL__sub_I_qprinterinfo.cpp(void)() at painting/qprinterinfo.cpp:163

    #4 0x0000003e9c20f2ea in call_init (l=, [email protected]=1, [email protected]=0x7fffffffddb8, [email protected]=0x7fffffffddc8) at dl-init.c:82

    #5 0x0000003e9c20f3d3 in call_init (env=, argv=, argc=, l=) at dl-init.c:34

    #6 _dl_init (main_map=0x3e9c421168, argc=1, argv=0x7fffffffddb8, env=0x7fffffffddc8) at dl-init.c:130

    #7 0x0000003e9c20122a in _dl_start_user() from /lib64/ld-linux-x86-64.so.2

    正如你所看到的,在段错误Qt的代码中出现而没有得到的代码main.cpp。这是什么原因造成的,我该如何解决?

    我在Fedora 20上使用Qt 5.2.0和Qwt 6.1.0,两者都来自仓库。

    +1

    Qwt 6.1是否与Fedora上的Qt版本4或Qt版本5相关联?因为这在Arch上适合我。 –

    +1

    'ldd'告诉我repo版本链接到'libQtCore.so.4 =>/lib64/libQtCore.so.4'和几个Qt .so,但是我从源代码编译的版本(使用qmake-qt5)也是,而且似乎也没有同样的问题。 –

    +1

    您链接到项目中的所有内容必须使用相同的C++编译器进行编译,并且必须使用相同的主要Qt版本。 –

    展开全文
  • Qt代码创建分隔条

    千次阅读 2017-08-06 21:21:36
    我们在使用Qt时,会发现在使用UI界面时可以添加窗口分隔条,但我们使用纯代码时却没有分隔条的类函数。这时候我们就需要手动添加,添加方式和Qt自定义标签按钮一样,下面我直接写代码。如果不知道怎么添加的,请先转...

    已经弃坑,不再使用Qt工具,有疑问可以查阅博主的其它博客,看看有没有解决方案,如果还没有可以百度或Google搜一下其他博主的教程!谢谢~

    我们在使用Qt时,会发现在使用UI界面时可以添加窗口分隔条,但我们使用纯代码时却没有分隔条的类函数。这时候我们就需要手动添加,添加方式和Qt自定义标签按钮一样,下面我直接写代码。如果不知道怎么添加的,请先转到Qt自定义标签按钮

    splitLine.h文件:

     1 #ifndef SPLITLINE_H
     2 #define SPLITLINE_H
     3 
     4 #include <QFrame>
     5 
     6 class SplitLine : public QFrame
     7 {
     8     Q_OBJECT
     9 public:
    10     SplitLine(QWidget *parent = 0);
    11     QFrame *frame;
    12 public slots:
    13     int setHorizontalVertical( int i=0 );//i=0时是水平分割线,i=1时是垂直分割线,默认为水平分割
    14     void setSizeRect( int x=0, int y=0, int w=100, int h=30);
    15 };
    16 
    17 #endif // SPLITLINE_H

    splitLine.cpp文件:

     1 #include "splitline.h"
     2 
     3 SplitLine::SplitLine(QWidget *parent) : QFrame(parent)
     4 {
     5     frame = new QFrame(this);
     6     setHorizontalVertical(0);           //默认为水平分割
     7 }
     8 
     9 int SplitLine::setHorizontalVertical(int i) //i=0时是水平分割线,i=1时是垂直分割线,默认为水平分割,已设置有默认尺寸
    10 {
    11     if(i==0)
    12     {
    13         frame->setFrameShape(QFrame::HLine);        // 水平分割线
    14         frame->setFrameShadow(QFrame::Sunken);
    15         setSizeRect(30,30,100,20);                              //设置默认尺寸
    16     }
    17     if(i==1)
    18     {
    19         frame->setFrameShape(QFrame::VLine);        // 垂直分割线
    20         frame->setFrameShadow(QFrame::Sunken);
    21         setSizeRect(30,30,20,100);
    22     }
    23     else
    24     {
    25         frame->setFrameShape(QFrame::HLine);
    26         frame->setFrameShadow(QFrame::Sunken);
    27         setSizeRect(30,30,100,20);
    28     }
    29     return i;
    30 }
    31 
    32 void SplitLine::setSizeRect( int x, int y, int w, int h)
    33 {
    34    frame-> setGeometry(QRect(x,y,w,h));
    35 }

    之后在Qt工程中调用即可。需要注意的是如果需要设置分割线的尺寸和布局方向,请先设置布局方向,否则分割线的尺寸是默认尺寸。

    (本文只出现在Aili_Xiao的博客中,目前在博客园和CDSN中)

    展开全文
  • qt代码标记

    2019-05-25 17:44:11
    void QmyWidget::on_ageChanged( int value) { {//响应QPerson的ageChanged()信号 QPerson *aPerson = qobject_cast<QPerson *>(sender()); //类型投射 } 这边就是得到投递信号主体句柄 ...
    void QmyWidget::on_ageChanged( int value)

    {

    {//响应QPerson的ageChanged()信号
    QPerson *aPerson = qobject_cast<QPerson *>(sender()); //类型投射
    

    }

    这边就是得到投递信号主体句柄

    展开全文
  • 整体效果 使用Qt属性动画实现了一种动态饼图展开效果。效果图如下图:

    整体效果

    使用Qt属性动画实现了一种动态饼图展开效果。效果图如下图:
    饼图状态截图

    Qt属性动画

    Qt属性动画QPropertyAnimation类动是基于Qt属性(Qt properties)的属性修改,继承于QVariantAnimation,支持与父类相同的动画属性。

    Qt的整个动画框架类继承关系如下图:
    1、属性动画QPropertyAnimation可以理解为对单个对象Object的单帧动画
    2、组动画是对多个属性动画或者其他组动画的一种串行或并行的组织关系
    Qt动画框架
    这里引用Qt Assistant中的demo code,表示一个属性动画的创建

      QPropertyAnimation *animation = new QPropertyAnimation(myWidget, "geometry");
      animation->setDuration(10000);
      animation->setStartValue(QRect(0, 0, 100, 30));
      animation->setEndValue(QRect(250, 250, 100, 30));
    
      animation->start();
    

    其中 new QPropertyAnimation(myWidget, “geometry”) geometry就是Qt properties。这是Qt内置属性。这个属性动画控制窗口在10s内的几何尺寸的变化,从(0, 0, 100, 30)变换到(250, 250, 100, 30)。

    Qt属性系统(The Property System )

    Qt properties依赖于Qt属性系统,Qt属性基于Qt的元对象系统(Meta-Object System),通过Qt信号槽极值进行数据传递,属性属性可以从qml脚本文件向cpp文件中传递。
    属性的代码行为更像一个类的数据成员,但为了对接元对象系统,附加了一些特性声明(具体参看Qt Assistant),属性的值任何代码块中的变化都会触发其他代码块中同属性同步数值更新(如果有信号,发送信号)。
    属性宏的声明类似如下:

    	  Q_PROPERTY(QColor color MEMBER m_color NOTIFY colorChanged)
          Q_PROPERTY(qreal spacing MEMBER m_spacing NOTIFY spacingChanged)
          Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)
          ...
      signals:
          void colorChanged();
          void spacingChanged();
          void textChanged(const QString &newText);
    
      private:
          QColor  m_color;
          qreal   m_spacing;
          QString m_text;
    

    本例中圆环展开的动画实现

    1、定义饼图Item(PieFigureItem)继承于QWidget
    2、声明角度(angle)为Qt属性,并增加属性声明和信号声明
    3、在PieFigureItem::paint() 函数里,更根据angle的值绘制出分段圆环;在根据angle的值比例计算中间数值的显示值
    4、属性动画触发的角度槽函数onAngleChanged(newAnlge) 重新paint()饼图


    PieFigureItem.h代码如下:

    #pragma once
    
    #include <QWidget>
    
    #include "StatusPieFigureDef.h"
    
    class QPropertyAnimation;
    
    namespace commonui
    {
        /**
        *   饼图item
        */
        class PieFigureItem : public QWidget
        {
            Q_OBJECT
            // 声明角度(angle)为Qt属性
            Q_PROPERTY(int angle MEMBER m_angle NOTIFY signalAngleChanged)
        public:
            PieFigureItem(int duration = 6000, QWidget *parent = Q_NULLPTR);
            ~PieFigureItem();
    
            // 初始区段数据
            void initData(PtrFigureData pData);
    
        private:
            void initConnect();
            // 初始动画
            void initAnimation(int duration);
            // 绘制基础环段
            void drawCircleSegment(QColor color, int innerRa
                , int outerRa, qreal startAngle, qreal spanAngle, QPainter& painter);
    
        signals:
            // 角度动画改变信号
            void signalAngleChanged(int newAngle);
    
        protected:
            void paintEvent(QPaintEvent* event) override;
            void showEvent(QShowEvent* event) override;
    
            private slots:
            // 响应角度改变
            void onAngleChanged(int newAngle);
    
        private:
            int m_angle{ 0 };                           // 动画角度
            int m_totalValue{ 0 };                      // 数据总值
            PtrFigureData m_pFigureData{ nullptr };     // 图标数据
    
            QPropertyAnimation* m_pAnimation{ nullptr };// 属性动画
        };
    }
    

    PieFigureItem.cpp代码如下:

    #include "stdafx.h"
    #include "PieFigureItem.h"
    
    #include <QPropertyAnimation>
    #include <QPainter>
    #include <QtMath>
    
    namespace commonui
    {
        namespace {
            const qreal kInitInnerRad = 0.25;       // 初始内径(归一化)
            const qreal kInitOuterRad = 0.49;        // 初始外径(归一化)
            const qreal kRadDiff = 0.03;            // 外径梯度下降差(归一化)
            const int kValueMaxStringWidth = 115;   // 数值显示的最大宽度为115px,小于就要缩小尺寸
            const int kValueMaxStringHeght = 60;    // 数值显示的最大高度为60px,小于就要缩小尺寸
            const int kDefautFontSize = 45;         // 初始字体大小45pt
            QFont gTextFont("Microsoft YaHei");     // 字体
            const QColor kTextColor = QColor("#4D4D4D");    // 字体颜色
        }
    
        /** @fn         calculateDrawCircleRingPath
        *   @brief      绘制圆环路径
        *   @param(IN)  pCenter 中心点
        *   @param(IN)  qRadiusMin 内径
        *   @param(IN)  qRadiusMax 外径
        *   @param(IN)  startAngle 初始角
        *   @param(IN)  spanAngle 环圆心角
        *   @author     wangxiaodong8
        *   @return     QPainterPath
        */
        QPainterPath calculateDrawCircleRingPath(QPointF pCenter
            , qreal qRadiusMin, qreal qRadiusMax, qreal startAngle, qreal spanAngle)
        {
            QPainterPath path;
            qreal v1PointX = qRadiusMin * qCos(qDegreesToRadians(startAngle))
                + pCenter.x();
            qreal v1PointY = -qRadiusMin * qSin(qDegreesToRadians(startAngle))
                + pCenter.y();
    
            QRectF radiusMaxRect = QRectF(pCenter - QPointF(qRadiusMax, qRadiusMax), QSize(qRadiusMax * 2, qRadiusMax * 2));
            QRectF radiusMinRect = QRectF(pCenter - QPointF(qRadiusMin, qRadiusMin), QSize(qRadiusMin * 2, qRadiusMin * 2));
    
            // 构造扇形路径
            path.moveTo(QPointF(v1PointX, v1PointY));
            path.arcTo(radiusMinRect, startAngle, spanAngle);
            path.arcTo(radiusMaxRect, startAngle + spanAngle, -spanAngle);
            path.closeSubpath();
            return path;
        }
    
        /** @fn         computeAdustedFontSize
        *   @brief      计算文本的合适字体大小
        *   @author     wangxiaodong8
        *   @return     int
        */
        int computeAdustedFontSize(QString text, QSize& textRectsize)
        {
            int retFontPt = kDefautFontSize;
    
            do
            {
                gTextFont.setPointSizeF(retFontPt);
                QFontMetrics metric(gTextFont);
                textRectsize = metric.boundingRect(QRect(0, 0, kValueMaxStringWidth, kValueMaxStringHeght)
                    , Qt::AlignCenter, text).size();
    
                if (textRectsize.width() < kValueMaxStringWidth
                    && textRectsize.height() < kValueMaxStringHeght)
                {
                    break;
                }
                retFontPt -= 2;
    
            } while (retFontPt > kDefautFontSize / 2);
    
    
            return retFontPt;
        }
    
        PieFigureItem::PieFigureItem(int duration /*= 6000*/, QWidget *parent /*= Q_NULLPTR*/)
            :QWidget(parent)
        {
            // 初始动画
            initAnimation(duration);
    
            initConnect();
        }
    
        PieFigureItem::~PieFigureItem()
        {
    
        }
    
        /** @fn         PieFigureItem::initData
        *   @brief
        *   @param(IN)
        *   @param(OUT)
        *   @author     wangxiaodong8
        *   @return     void
        */
        void PieFigureItem::initData(PtrFigureData pData)
        {
            m_pFigureData = pData;
    
            // 统计总数
            m_totalValue = 0;
            for (const auto& segData : *m_pFigureData)
            {
                m_totalValue += segData.segmentValue.toInt();
            }
    
            update();
        }
    
        /** @fn         PieFigureItem::initConnect
        *   @brief      initConnect
        *   @author     wangxiaodong8
        *   @return     void
        */
        void PieFigureItem::initConnect()
        {
            connect(this, &PieFigureItem::signalAngleChanged, this, &PieFigureItem::onAngleChanged);
    
        }
    
        /** @fn         PieFigureItem::initAnimation
        *   @brief      初始动画
        *   @param(IN)  duration
        *   @author     wangxiaodong8
        *   @return     void
        */
        void PieFigureItem::initAnimation(int duration)
        {
            m_pAnimation = new QPropertyAnimation(this, "angle");
            m_pAnimation->setDuration(duration);
            m_pAnimation->setStartValue(0);
            m_pAnimation->setEndValue(360);
        }
    
        /** @fn         PieFigureItem::drawCircleSegment
        *   @brief      绘制基础环段
        *   @param(IN)  color 环颜色
        *   @param(IN)  innerRa 内径
        *   @param(IN)  outerRa 外径
        *   @param(IN)  startAngle 初始角
        *   @param(IN)  spanAngle 环圆心角
        *   @param(IN)  painter
        *   @author     wangxiaodong8
        *   @return     void
        */
        void PieFigureItem::drawCircleSegment(QColor color, int innerRa
            , int outerRa, qreal startAngle, qreal spanAngle, QPainter& painter)
        {
            painter.save();
    
            // 圆心
            QPoint centerPoint = this->rect().center();
    
    
            // 计算环路径
            auto path = calculateDrawCircleRingPath(QPointF(centerPoint.x(), centerPoint.y()),
                innerRa, outerRa, startAngle, spanAngle);
    
            // 绘制
            painter.setPen(Qt::NoPen);
            painter.setBrush(color);
            painter.drawPath(path);
    
            painter.restore();
        }
    
        /** @fn         PieFigureItem::paintEvent
        *   @brief      paintEvent
        *   @param(IN)  event
        *   @author     wangxiaodong8
        *   @return     void
        */
        void PieFigureItem::paintEvent(QPaintEvent* event)
        {
            if (m_pFigureData && m_pFigureData->count() > 0)
            {
                QPainter painter(this);
                painter.setRenderHint(QPainter::Antialiasing);
    
                 绘制圆环
                // 最大半径
                qreal radius = (this->width() < this->height()) ? this->width() : this->height();
                qreal radDiff = radius * kRadDiff;
    
                auto index = 0;
                qreal startAngle = 90;
                for (const auto& segData : *m_pFigureData)
                {
                    qreal spanAngle = -segData.segmentValue.toDouble() / m_totalValue * m_angle;
                    qreal outerRad = radius * kInitOuterRad - index * radDiff;
                    qreal innterRad = radius * kInitInnerRad;
                    drawCircleSegment(segData.segmentColor, innterRad, outerRad, startAngle, spanAngle, painter);
    
                    startAngle += spanAngle;
    
                    ++index;
                }
    
                 绘制数字
                // 找到合适字体大小
                int midValue = m_angle / 360.0 * m_totalValue;
                QString textValue = QString::number(midValue);
                QSize textRectSize;
                auto fontSize = computeAdustedFontSize(textValue, textRectSize);
    
                // 绘制中间数值
                gTextFont.setPointSizeF(fontSize);
                gTextFont.setBold(true);
                painter.setFont(gTextFont);
                painter.setPen(kTextColor);
    
                QPoint centerPoint = this->rect().center();
                QPoint topleft = centerPoint - QPoint(textRectSize.width() / 2, textRectSize.height() / 2);
                QRect textRect(topleft, QSize(textRectSize.width(), textRectSize.height()));
                painter.drawText(textRect, textValue);
            }
            
            QWidget::paintEvent(event);
        }
    
        /** @fn         PieFigureItem::showEvent
        *   @brief      showEvent
        *   @param(IN)  event
        *   @author     wangxiaodong8
        *   @return     void
        */
        void PieFigureItem::showEvent(QShowEvent* event)
        {
            m_pAnimation->start();
        }
    
        /** @fn         PieFigureItem::onAngleChanged
        *   @brief      响应角度改变
        *   @param(IN)  newAngle
        *   @author     wangxiaodong8
        *   @return     void
        */
        void PieFigureItem::onAngleChanged(int newAngle)
        {
            update();
        }
    }
    
    展开全文
  • 第10篇 Qt实现安装向导对话框之代码布局篇(三)1.源文件分段解说1.1.主窗口类的构造函数1.2.创建安装向导对话框界面函数1.3.第一个页面创建函数1.4.第二个页面创建函数1.5.第三个页面创建函数1.6.代码布局小心得 1....
  • 第11篇 Qt实现安装向导对话框之代码布局篇(四)1.源文件分段解说1.7.第四个页面创建函数1.8.文件夹及文件的遍历函数1.9.槽函数2.源文件 1.源文件分段解说 1.7.第四个页面创建函数 void Widget::createPage_four() {...
  • 若该文为原创文章,未经允许不得转载 ...红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门
  • Qt and Qt Charts

    2021-01-22 16:39:25
    QtQt Charts入门的好玩的课程。
  • Qt

    千次阅读 2010-02-21 15:59:00
    qt的一篇入门文章(貌似大部分代码和讲解都来自C++ GUI Programming with QT4) Qt学习之路(1):前言Qt是一个著名的C++库——或许并不能说这只是一个GUI库,因为Qt十分庞大,并不仅仅是GUI。使用Qt,在一定程序上你...
  • ios自定义分段控件In this article, I’ll be sharing my implementation of a custom SegmentedPicker in SwiftUI. You may ask, “Why go through the pain of implementing this yourself?” 在本文中,我将分享...
  • QPainter 扇形分段

    2021-08-09 12:24:59
    核心代码: void MainWindow::paintEvent(QPaintEvent *) { QPainter painter(this); painter.translate(this->width()/2,this->height()/2); painter.setRenderHint(QPainter::Antialiasing, true); ...
  • 分段分颜色环形进度条

    千次阅读 2017-03-10 15:52:56
    分段划曲线思路将第一段的终值赋值给第二段的初始值,以此类推。。。 2.[self setNeedsDisplay]更新画图进度代码示例/* 显示多段不同比例的进度 */ #import #import "HXProgressColorAndRateModel.h"@interface ...
  • Qt绘制热力图

    千次阅读 2020-02-29 00:27:07
    如果一个点出现多次,那么就需要有权重的概念,可以根据重复最多的点来作为计算的标准,也可以根据重复次数分段 //权重统计表(把权重单独拿出来,就可以不用遍历数据点来计算了) //加()初始化为0 int *_...
  • QT学习_QT调用cmd指令

    2021-08-26 16:40:18
    QT调用Windows的cmd指令 知识点 QProcess进程的使用 process.start( 程序,参数指令 ) process.waitForStarted() process.waitForFinished() process.close() cmd指令的使用 cmd /c 指令 开启程序 void ...
  • Qt是由Qt Company开发的主流跨平台C++图形用户界面应用程序开发框架。 Qt是面向对象的框架、容易扩展,并且允许真正地组件编程,既可以开发GUI程序,也可用于控制台工具和服务器。其跨平台集成开发环境Qt Creator ...
  • QT是基于C++的跨平台开发工具。QT6是QT目前<最><新>的版本,增加了很多功能。   由于QT可用于开发跨平台桌面应用,尽管操作上基本一致,但某些API还是有一定差异的,所以本课程每一个案例都会同时...
  • Qt 基础

    千次阅读 2012-07-27 09:11:01
    一、Qt Creator 的安装和hello world 程序的编写(原创) 1.首先到Qt 的官方网站上下载Qt Creator,这里我们下载windows 版的。 下载地址:http://qt.nokia.com/downloads 如下图我们下载:Download Qt SDK for ...
  • QT入门

    千次阅读 2011-10-02 20:21:42
    Qt学习之路(1):前言 Qt是一个著名的C++库——或许并不能说这只是一个GUI库,因为Qt十分庞大,并不仅仅是GUI。使用Qt,在一定程序上你获得的是一个“一站式”的 服务:不再需要研究STL,不再需要C++的,因为Qt有它...
  •  目前网上的大多数 QT 移植教程还都停留在 qt4.8 版本,或者还有更老的 Qtopia ,但是目前 Qt 已经发展到最新的 5.7 版本了,我个人也已经使用了很长一段时间的 qt5.6 for windows ,目前简单的移植 uboot kernel ...
  • C++ Qt编程

    千人学习 2018-03-04 23:56:36
    本课程以C++编程为导向来详细介绍Qt编程,课程包括十四个部分,分别介绍Qt的编程环境、窗体应用、控件应用、组件应用、文件操作、图形图像操作、多媒体应用、对系统操作、对注册表操作、数据库应用,网络应用开发、...
  • Qt中,提供了QNetworkAccessManager这个类,用于完成基于Http协议的数据上传和下载,该类既可以发送网络请求,也可以接受网络回复。而具体的网络请求是通过QNetworkRequest类发送的,具体的网络回复是通过...
  • 代码为不完整代码,opencv3.2+Qt5.8,目的就是为了正常的视频通讯。 发送端 opencv读取本地视频 逐帧读取(Mat格式) 利用QBuffer,将数据存入到QBytearray中 每隔一定长度分段发送出去,(别像我这样写3000) 接收...
  • QT Day03

    2020-02-11 16:45:50
    Qt可以手工编写创建界面的代码也可以使用Qt Designer界面编辑器设计,可直接控件,设置控件的属性,从而相对于手工编写界面代码简单,直观,易于操作。本案例实现用Qt设计师重构计算器界面。 1.3步骤 实现此案例需.....
  • QT中文教程-----QT教程指南

    千次阅读 2009-11-07 19:53:00
    转载自qteverywhere网上有很多关于Qt的学习资料,今天在这里总结一下,希望各位想学习Qt的同学,各取所需,早日从入门到精通!Part 1: 新手上路Qt 官方学习教程Qt 官方学习教程包含了3部分,包括如何学习Qt,如何...
  • QT 仿android launcher

    千次阅读 2018-07-23 19:33:18
    QT 在嵌入式设备的图形界面开发上用的比较多,现在的嵌入式设备主流用的是android,QT的桌面又没有android那么好用,最近在做QT 的一些项目,于是想先用QT仿一个android 的luancher。 整体思路分两步来实现,一是...
  • Qt5官方Demo解析集4——Blocking Fortune Client
  • Qt音视频开发实战

    2021-06-25 15:46:54
    课程摘要 1 Qt音视频开发实战 是陈超老师用10年以上音视频一线实战开发经验,四年音视频开发教学经验打造的Qt音视频开发课程。 2 Qt音视频开发实战以Qt c++开发为中心。所有课程全部围绕Qt音视频开发展开。 3 非常...
  • QT/C++从新手到老手系列之QT中级篇

    千人学习 2018-08-01 12:16:01
    本阶段主要带领同学们完成以下几个方面的学习:文件、目录、输入输出、典型案例演示,QT自定义外观设计、样式表设计与实现、绘制模式、典型案例演示,XMl原理、接口设计、SAX、DOM等,数据库基本原理、Sqlite、mysql...
  • 简述在 Qt 之 HTTP 请求下载(支持断点续传) 文章中我们使用Qt 的方法进行HTTP 请求下载文件,同时能够断点续传,本篇文章是这一篇文章的续篇。我们一般在网上下载软件、电影、文件等,大都是使用迅雷下载,因为...
  • QT画图

    千次阅读 2013-10-23 22:57:19
    画笔的属性可以在构造函数中指定,也可以使用setStyle(),setWidth(),setBrush(),setCapStyle(),setJoinStyle()等函数逐项设定画笔的各项属性.Qt中使用Qt::PenStyle定义了6种画笔风格,分别是Qt::SolidLine,Qt::...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,070
精华内容 428
关键字:

qt代码分段