精华内容
参与话题
问答
  • QT5新手教程(1)QT5+VS2013

    千次阅读 2016-05-29 13:22:36
    开始研究QT5,今天开始在工作不忙的时候陆续更新。 如果你以前用过QT3或者4请首先转换一下思维,QT5是纯面向对象了,所有控件的操作都统一在ui这个对象里面。 首先,我们需要下载QT 首先需要一个QT 5.6这个可以在qt...

    由于工作需要,要做一个新项目,而且不能再用qt338版本(公司产品特殊,稳定性要求极高)。开始研究QT5,今天开始在工作不忙的时候陆续更新。

    如果你以前用过QT3或者4请首先转换一下思维,QT5是纯面向对象了,所有控件的操作都统一在ui这个对象里面。

    首先,我们需要下载QT

    首先需要一个QT 5.6这个可以在qt网站上直接下载到,没什么好说的。

    然后还需要一个vs addin 1.25,这个你们不好找,我贴出来,下载qt-vs-addin-1.2.5.exe

    安装过程不需要配置任何环境变量!!!!!

    网上某些教程很不负责任,如果仅仅是写程序是不需要配置环境变量的,只有运行的时候需要,但我的建议一定是不要配置,不然出现问题你都无法判断到底是谁的问题。


    下面开始正题


    都安装了之后我们配置一下vs


    安装addin之后会出现qt选项,我们选择qt的设置,选择add按钮,选取安装路径里面的msvc2013_64文件夹,这个版本不同也不太一样。


    然后新建工程。

    在vs中选择新建工程


    选第一个就可以,第二个需要qxml手动写控件

    然后工程新建出来了!!!!!

    某些教程就到此为止了

    但是!!!!!!!!

    你很快就发现根本没法用,因为一大堆编译错误,其他教程会告诉你修改pro文件,其实就是少了一个库

    在工程名上右键,属性,选中左侧c++,选中常规。


    把你安装路径里面的include文件夹加载进来,然后很快你的那堆错误就没了。

    然后清净了,工程就建立起来了,然后就是qt编写了。用过qt34的到此为止你基本可以上手写了,新接触qt的各位亲情继续关注我的后续博客。

    展开全文
  • C++实战OpenCV3.2+QT5播放视频

    千人学习 2019-02-22 20:56:28
    OpenCV是目前视频处理的最流行的框架,广泛用于各类项目中,并且由于OpenCV的开源特性可以很容易移植到Android、IOS和嵌入式Linux中,QT5同样是跨平台界面库的第一选择。 本次公开课将基于OpenCV3.2和QT5,详细...
  • OpenCV3.2+QT5+ffmpeg实战开发视频编辑器视频培训课程概况:教程中会讲解到基于opencv视频和摄像机录制、播放和播放进度控制,多视频图像合并、多视频图像融合、剪切、视频亮度、对比度、尺寸(近邻插值(手动实现)...
  • Ubuntu安装QT5

    万次阅读 多人点赞 2019-05-20 10:34:36
    最近打算学一下QT应用程序开发,所以打算装一个QT桌面环境QtCreator,捣鼓了一阵,把电脑弄坏重装系统之后,终于安装好了,这里分享一下安装的过程

    前言

    最近打算学一下QT应用程序开发,所以打算装一个QT桌面环境QtCreator,捣鼓了一阵,把电脑弄坏重装系统之后,终于安装好了,这里分享一下安装的过程

    1. QT5安装

    环境

    Ubuntu14.04
    QT5.12.3
    

    首先去QT安装包下载安装包,我这里选择的是目前最新的QT5.12.3
    QT安装包
    下载好之后赋予可执行权限

    chmod +x qt-opensource-linux-x64-5.12.3.run
    

    然后执行安装命令

    sudo ./qt-opensource-linux-x64-5.12.3.run
    

    然后一直点下一步或者跳过就好了,安装路径我也是默认的
    QT安装路径
    等待安装完成

    2. 路径配置

    安装完成之后,需要修改default.conf,执行

    sudo vim /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
    

    将第一行改为自己安装路径下的bin目录的路径,第二行改为Qt5.12.3目录的路径,下面是我的配置

    /opt/Qt5.12.3/5.12.3/gcc_64/bin
    /opt/Qt5.12.3/
    

    3. 运行问题

    3.1 FT_Get_Font_Format

    运行qtcreator,然后报错undefined symbol: FT_Get_Font_Format

    anruliu@anruliu:/opt/Qt5.12.3/Tools/QtCreator/bin$ ./qtcreator
    ./qtcreator: symbol lookup error: /opt/Qt5.12.3/Tools/QtCreator/lib/Qt/plugins/platforms/../../lib/libQt5XcbQpa.so.5: undefined symbol: FT_Get_Font_Format
    

    需要下载安装freetype-2.10.0,解压之后执行

    cd freetype-2.10.0
    ./configure --prefix=/opt/Qt5.12.3/Tools/QtCreator/lib/Qt/
    make
    cd ./objs/.libs
    sudo cp libfreetype.so /opt/Qt5.12.3/Tools/QtCreator/lib/Qt/lib
    sudo cp libfreetype.so.6 /opt/Qt5.12.3/Tools/QtCreator/lib/Qt/lib
    sudo cp libfreetype.so.6.17.0 /opt/Qt5.12.3/Tools/QtCreator/lib/Qt/lib
    

    其中/opt/Qt5.12.3/就是安装QT的目录

    3.2 LIBDBUS_1_3 not defined

    再次运行qtcreator,然后报错version LIBDBUS_1_3 not defined

    anruliu@anruliu:/opt/Qt5.12.3/Tools/QtCreator/bin$ ./qtcreator
    ./qtcreator: relocation error: /opt/Qt5.12.3/Tools/QtCreator/lib/Qt/plugins/platforms/../../lib/libQt5DBus.so.5: symbol dbus_message_get_allow_interactive_authorization, version LIBDBUS_1_3 not defined in file libdbus-1.so.3 with link time reference
    

    需要下载安装dbus-1.13.10,解压之后执行

    cd dbus-1.13.10
    ./configure --prefix=/opt/Qt5.12.3/Tools/QtCreator/lib/Qt/
    make
    cd ./dbus/.libs
    sudo cp libdbus-1.so /opt/Qt5.12.3/Tools/QtCreator/lib/Qt/lib
    sudo cp libdbus-1.so.3 /opt/Qt5.12.3/Tools/QtCreator/lib/Qt/lib
    sudo cp libdbus-1.so.3.26.0 /opt/Qt5.12.3/Tools/QtCreator/lib/Qt/lib
    

    其中/opt/Qt5.12.3/就是安装QT的目录
    把缺失的库直接拷贝到qtcreator的lib的路径下,可以让qtcreator找到它自己需要依赖的库,不会对系统本身造成影响,不然可能会导致桌面起不来,然后得重装系统

    所有问题解决后,运行qtcreator,就可以看到界面,可以尽情的开发了
    qtcreator运行效果

    4. 编译应用问题

    在示例中选择一个demo进行编译,比如我选的是shadow-map-qml,在构建设置配置好后,点击运行,发现还有一些错误

    4.1 GL/gl.h: No such file or directory

    /opt/Qt5.12.3/5.12.3/gcc_64/include/QtGui/qopengl.h:144: error: GL/gl.h: No such file or directory
    

    需要安装gl的库

    sudo apt-get install libgl1-mesa-dev
    

    4.2 LIBDBUS_1_3 not defined

    relocation error: /opt/Qt5.12.3/5.12.3/gcc_64/lib/libQt5DBus.so.5: symbol dbus_message_get_allow_interactive_authorization, version LIBDBUS_1_3 not defined in file libdbus-1.so.3 with link time reference
    

    这个和运行qtcreator的错误一样,需要我们指定libdbus的目录,在项目–>构建设置–>构建环境添加环境变量LD_LIBRARY_PATH为/opt/Qt5.12.3/Tools/QtCreator/lib/Qt/lib,如下图所示
    构建设置
    改好之后,重新运行,就可以看到应用运行效果了!!!
    QT DEMO

    展开全文
  • QT5读gbk编码的数据库(数据库比较老编码不能改)的时候,发现中文字段是乱码,比如数据库里数据是“中性点”,QT5显示是”���Ե�",实际上这是gbk编码的中文”中性点“在UTF-8上显示的内容,现在想怎么把这段...
  • Qt笔记——Qt初探、PyQt5和Qt5

    千次阅读 2019-07-12 22:59:37
    虽然现在还是有烦事缠身,但是下决心重新复习C++,认真学习Qt,目标希望能在Qt上走得更远更持久。 我的pyqt专栏: https://blog.csdn.net/qq_41895747/column/info/36171 一个牛逼的pyqt5项目: https://githu...

    半年前接触了pyqt,开发了一个无人机环境监测的软件,感觉非常有意思,这半年受困于学业和杂事繁忙, 没有继续进阶;虽然现在还是有烦事缠身,但是下决心重新复习C++,认真学习Qt,目标希望能在Qt上走得更远更持久。

    我的pyqt专栏:

    https://blog.csdn.net/qq_41895747/column/info/36171

    一个牛逼的pyqt5项目:

    https://github.com/PyQt5/PyQt

    我的Qt专栏:

    https://blog.csdn.net/qq_41895747/category_9122323.html

    争取把Qt5的技术栈完善玩一遍


    在我看来PyQt和Qt之间的优缺点如下:

    • pyqt在数据分析领域非常友好,得益于python在数据分析领域的优势,很多数据分析库直接用。
    • qt支持的设备很多,无论是windows、linux还是移动安卓端、苹果端;还有嵌入式设备(如医疗、汽车设备等,但是此版本收费),跨平台开发基本qt,嵌入式开发qt的剪裁版用的非常多。
    • qt更适合大项目开发,qt的功能更多;pyqt像是qt的阉割版。
    • pyqt对于一些小项目的话上手非常快,功能少但是“五脏俱全”;GitHub上不少大神用pyqt开发了如音乐播放器这些较大型的软件;但是如WPS这些大型软件还是用qt开发的。
    • 就业。不少软件公司用qt软件开发工程师;pyqt在这一点上有些不足。
    • 学习教材:
      • pyqt的教材就王硕大神那本,还有一本译本,其他专门的教材很少,力荐王硕那本书,真是经典!
      • qt的教材很多,随便淘宝一搜一大堆,学习起来更方便

    Qt常用网站:

    展开全文
  • Qt5:TabWidget选项卡

    万次阅读 多人点赞 2018-11-12 10:31:02
    Qt的Tab Widget控件会创建一个标签栏,标签栏上可以创建很多选项卡,默认自动生成两个(tab和tab_2),其它的自己添加,而每个选项卡又控制着一个界面,切换不同的选项卡就会跳转到相应的界面,实现了资源共享的功能...

    Qt的Tab Widget控件会创建一个标签栏,标签栏上可以创建很多选项卡,默认自动生成两个(tab和tab_2),其它的自己添加,而每个选项卡又控制着一个界面,切换不同的选项卡就会跳转到相应的界面,实现了资源共享的功能。

     

    简单示例 


    这个简单示例是根据官方文档使用代码来创建选项卡,没有使用Qt设计师添加,Qt设计师只是添加了一个Tab Widget标签栏。打开Qt,新建一个Qt Widgets Application项目,转到设计师模式,从左侧工具栏添加一个Tab Widget控件到窗口上,调整Tab Widget控件的大小,修改Tab Widget控件的对象名为tabWidget,然后添加如下代码:

    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:
        Ui::MainWindow *ui;
    };
    
    #endif // MAINWINDOW_H

    mainwindow.cpp 

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include "QDebug"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        setWindowTitle(tr("TabWidget"));//设置标题
        ui->tabWidget->clear();//清空选项卡
    
        QWidget *tabSports=new QWidget(this);
        QWidget *tabMusic=new QWidget(this);
        QWidget *tabSoftware=new QWidget(this);
        QWidget *tabDigital=new QWidget(this);
        QWidget *tabLanguage=new QWidget(this);
    
        ui->tabWidget->setTabPosition(QTabWidget::North);//设置选项卡的方位东南西北,默认在上方
    
        ui->tabWidget->addTab(tabSports,tr("运动"));//在后面添加选项卡
        ui->tabWidget->addTab(tabMusic,tr("音乐"));
        ui->tabWidget->addTab(tabSoftware,QIcon("F:\\磊神图片\\icons\\1.ico"),tr("软件"));//在后面添加带图标的选项卡
        ui->tabWidget->insertTab(3,tabDigital,tr("数码"));//插入选项卡
        ui->tabWidget->insertTab(4,tabLanguage,QIcon("F:\\磊神图片\\icons\\3.ico"),tr("语言"));//插入带图标的选项卡
        ui->tabWidget->setTabShape(QTabWidget::Triangular);//设置选项卡的形状
        //ui->tabWidget->removeTab(0);//移除选项卡
    
        ui->tabWidget->setTabIcon(0,QIcon("F:\\磊神图片\\icons\\2.ico"));//设置选项卡图标
        ui->tabWidget->setTabIcon(1,QIcon("F:\\磊神图片\\icons\\4.ico"));//设置选项卡图标
        ui->tabWidget->setTabIcon(3,QIcon("F:\\磊神图片\\icons\\5.ico"));//设置选项卡图标
        ui->tabWidget->setIconSize(QSize(50,25));//设置图标的大小(选项卡的大小也会改变)
        ui->tabWidget->setMovable(true);
        ui->tabWidget->setTabsClosable(true);//在选项卡上添加关闭按钮
        qDebug()<<"第一个选项卡名称:"<<ui->tabWidget->tabText(0);//获取选项卡名称
        qDebug()<<"iconSize:"<<ui->tabWidget->iconSize();//获取icon的尺寸
    
        ui->tabWidget->setTabEnabled(0,false);//禁用选项卡
        ui->tabWidget->setTabEnabled(1,false);
        ui->tabWidget->setTabToolTip(2,tr("Beautiful"));//鼠标悬停弹出提示
        ui->tabWidget->usesScrollButtons();//选项卡太多滚动
        //ui->tabWidget->removeTab(0);//移除选项卡
        //ui->tabWidget->setTabWhatsThis(3,tr("Beautiful Girl"));//不知道干嘛的
        //ui->tabWidget->setTabBarAutoHide(true);//包含少于2个选项卡时会自动隐藏
        //ui->tabWidget->setTabText(0,tr("软件"));//按索引修改选项卡的名称
        //ui->tabWidget->setTabText(1,tr("舞蹈"));
        //ui->tabWidget->setDocumentMode(true);//设置选项卡是否以适合文档页面的模式呈现
        //ui->tabWidget->setElideMode(Qt::ElideLeft);//标签栏中删除文字
    
        //ui->tabWidget->clear();//清空选项卡
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }

    显示效果


     

    综合示例 


    综合示例Tab Widget选项卡控制着表格、柱状图、按钮和编辑框、树部件、列表部件的显示,里面用到了QCustomPlot类绘制柱状图,需要添加一些东西,使用方法请看另一篇文章:https://blog.csdn.net/mars_xiaolei/article/details/83281209。打开Qt,新建一个Qt Widgets Application项目,转到设计师模式,从左侧工具栏添加一个Tab Widget控件到窗口上,调整Tab Widget控件的大小,修改Tab Widget控件的对象名为tabWidget,选项卡和其它控件都是要自己添加的,每个选项卡控制这一个界面,然后添加如下代码:

      pro文件

    #------------------------------------------------
    #
    # Project created by QtCreator 2018-11-09T13:39:09
    #
    #-------------------------------------------------
    QT       += core gui
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
    TARGET = QTabWidget
    TEMPLATE = app
    # The following define makes your compiler emit warnings if you use
    # any feature of Qt which has been marked as deprecated (the exact warnings
    # depend on your compiler). Please consult the documentation of the
    # deprecated API in order to know how to port your code away from it.
    DEFINES += QT_DEPRECATED_WARNINGS
    # You can also make your code fail to compile if you use deprecated APIs.
    # In order to do so, uncomment the following line.
    # You can also select to disable deprecated APIs only up to a certain version of Qt.
    #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
    SOURCES += \       
     main.cpp \       
     mainwindow.cpp \    
    qcustomplot.cpp
    HEADERS += \        
    mainwindow.h \    
    qcustomplot.h
    FORMS += \       
     mainwindow.ui
    

    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:
        Ui::MainWindow *ui;
    };
    
    #endif // MAINWINDOW_H
    

    mainwindow.cpp

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include "QDebug"
    #include <QTableWidget>//表格
    #include <QTableWidgetItem>//表格
    #include "qcustomplot.h"
    #include <QTreeWidget>
    #include "QStringList"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        setWindowTitle(tr("TabWidget"));//设置标题
    
        ui->tabWidget->setTabPosition(QTabWidget::North);//设置选项卡的方位东南西北,默认在上方
        //ui->tabWidget->setTabShape(QTabWidget::Triangular);//设置选项卡的形状
        ui->tabWidget->setTabIcon(0,QIcon("E:\\Qt_Project\\QTabWidget\\1.ico"));//设置选项卡图标
        ui->tabWidget->setTabIcon(1,QIcon("E:\\Qt_Project\\QTabWidget\\2.ico"));//设置选项卡图标
        ui->tabWidget->setTabIcon(2,QIcon("E:\\Qt_Project\\QTabWidget\\3.ico"));//设置选项卡图标
        ui->tabWidget->setTabIcon(3,QIcon("E:\\Qt_Project\\QTabWidget\\4.ico"));//设置选项卡图标
        ui->tabWidget->setTabIcon(4,QIcon("E:\\Qt_Project\\QTabWidget\\5.ico"));//设置选项卡图标
        ui->tabWidget->setIconSize(QSize(50,25));//设置图标的大小(选项卡的大小也会改变)
        ui->tabWidget->setMovable(true);
        ui->tabWidget->setTabsClosable(true);//在选项卡上添加关闭按钮
        qDebug()<<"第一个选项卡名称:"<<ui->tabWidget->tabText(0);//获取选项卡名称
        qDebug()<<"iconSize:"<<ui->tabWidget->iconSize();//获取icon的尺寸
        //ui->tabWidget->clear();//清空选项卡
    
        /*
         * 运动选项卡
        */
        ui->tableWidgetSports->setColumnCount(6);//设置列数
        ui->tableWidgetSports->setRowCount(10);//设置行数
        ui->tableWidgetSports->setWindowTitle("QTableWidget");
        QStringList m_Header;
        m_Header<<QString("田径")<<QString("篮球")<<QString("足球")<<QString("乒乓球")<<QString("羽毛球")<<QString("游泳");
        ui->tableWidgetSports->setHorizontalHeaderLabels(m_Header);//添加横向表头
        ui->tableWidgetSports->verticalHeader()->setVisible(true);//纵向表头可视化
        ui->tableWidgetSports->horizontalHeader()->setVisible(true);//横向表头可视化
        //ui->tableWidget->setShowGrid(false);//隐藏栅格
        ui->tableWidgetSports->setEditTriggers(QAbstractItemView::NoEditTriggers);//设置编辑方式:禁止编辑表格
        ui->tableWidgetSports->setSelectionBehavior(QAbstractItemView::SelectRows);//设置表格选择方式:设置表格为整行选中
        //ui->qTableWidget->setSelectionBehavior(QAbstractItemView::SelectColumns);//设置表格选择方式:设置表格为整列选中
        ui->tableWidgetSports->setSelectionMode(QAbstractItemView::SingleSelection);//选择目标方式
        ui->tableWidgetSports->setStyleSheet("selection-background-color:pink");//设置选中颜色:粉色
    
        for(int rows=0;rows<10;rows++)
        {
            for(int columns=0;columns<6;columns++)
            {
                if(columns==0)
                {
                    ui->tableWidgetSports->setItem(rows,columns,new QTableWidgetItem("刘翔"));
                }
                else if(columns==1)
                {
                    ui->tableWidgetSports->setItem(rows,columns,new QTableWidgetItem("姚明"));
                }
                else if(columns==2)
                {
                    ui->tableWidgetSports->setItem(rows,columns,new QTableWidgetItem("C罗"));
                }
                else  if(columns==3)
                {
                    ui->tableWidgetSports->setItem(rows,columns,new QTableWidgetItem("马林"));
                }
                else if(columns==4)
                {
                    ui->tableWidgetSports->setItem(rows,columns,new QTableWidgetItem("林丹"));
                }
                else if(columns==5)
                {
                    ui->tableWidgetSports->setItem(rows,columns,new QTableWidgetItem("孙杨"));
                }
            }
        }
        for(int rows=0;rows<10;rows++)
        {
            for(int columns=0;columns<6;columns++)
            {
                ui->tableWidgetSports->setColumnWidth(columns,125);
                ui->tableWidgetSports->setRowHeight(rows,30);
                ui->tableWidgetSports->item(rows,columns)->setTextAlignment(Qt::AlignCenter);//居中显示
                ui->tableWidgetSports->item(rows,columns)->setBackgroundColor(QColor(85,170,255));//设置前景颜色
                ui->tableWidgetSports->item(rows,columns)->setTextColor(QColor(0,0,0));//设置文本颜色
                ui->tableWidgetSports->item(rows,columns)->setFont(QFont("Helvetica"));//设置字体为黑体
            }
        }
    
    
        //音乐选项卡
        ui->qCustomPlotMusic->plotLayout()->insertRow(0);
        ui->qCustomPlotMusic->plotLayout()->addElement(0, 0, new QCPTextElement(ui->qCustomPlotMusic, "网易云音乐播放和评论统计图", QFont("微软雅黑",12, QFont::Bold)));
    
    
        // set dark background gradient设置暗背景梯度:
        QLinearGradient gradient(0, 0, 0, 400);
        gradient.setColorAt(0, QColor(200, 150, 220));
        gradient.setColorAt(0.56, QColor(200, 150, 200));
        gradient.setColorAt(1, QColor(220, 150, 200));
        ui->qCustomPlotMusic->setBackground(QBrush(gradient));
    
        // create empty bar chart objects创建三个空的条形图对象:
        QCPBars *LoveTime = new QCPBars(ui->qCustomPlotMusic->xAxis, ui->qCustomPlotMusic->yAxis);//播放
        QCPBars *LoveTimes = new QCPBars(ui->qCustomPlotMusic->xAxis, ui->qCustomPlotMusic->yAxis2);//评论
        //将LatencyTime和ErrorTimes并排显示
        QCPBarsGroup *group = new QCPBarsGroup(ui->qCustomPlotMusic);
        LoveTime->setBarsGroup(group);
        LoveTimes->setBarsGroup(group);
        //设置抗锯齿
        LoveTime->setAntialiased(false); // gives more crisp, pixel aligned bar borders:提供更清晰,像素对齐的条形边框
        LoveTimes->setAntialiased(false);
        //设置叠加差距
        //LatencyTime->setStackingGap(1);
        //ErrorTimes->setStackingGap(1);
        //fossil->setStackingGap(1);
        // set names and colors设置名称和颜色:
        LoveTimes->setWidth(0.3);//设置宽度
        //ErrorTimes->setWidthType("wtPlotCoords");//wtAbsolute:wtAxisRectRatio:wtPlotCoords设置宽度
        LoveTimes->setName("评论");
        LoveTimes->setPen(QPen(QColor(250, 170, 20).lighter(150)));
        LoveTimes->setBrush(QColor(250, 170, 20));
        LoveTime->setWidth(0.3);//设置宽度
        //LatencyTime->setWidthType("wtPlotCoords");//wtAbsolute:wtAxisRectRatio:wtPlotCoords设置宽度
        LoveTime->setName("播放");
        LoveTime->setPen(QPen(QColor(0, 168, 140).lighter(130)));
        LoveTime->setBrush(QColor(0, 168, 140));
        // stack bars on top of each other把一个Bar叠加在另外一个Bar上面
        //ErrorTimes->moveAbove(fossil);
        //LatencyTime->moveAbove(ErrorTimes);
    
        //绘制xAxis
        QVector<double> ticks;
        QVector<QString> labels;
        ticks << 1 << 2 << 3 << 4 << 5 << 6 << 7<<8;
        labels << "盗将行" << "流浪" << "倒数" << "沙漠骆驼" << "爱的故事" << "成都" << "38度6"<<"卡路里";
        QSharedPointer<QCPAxisTickerText> textTicker(new QCPAxisTickerText);
        textTicker->addTicks(ticks, labels);
        ui->qCustomPlotMusic->xAxis->setTicker(textTicker);//设置刻度标记CH
        ui->qCustomPlotMusic->xAxis->setTickLabelRotation(60);//设置刻度标签旋转
        ui->qCustomPlotMusic->xAxis->setSubTicks(false);//设置是否显示子刻度线
        ui->qCustomPlotMusic->xAxis->setTickLength(0, 4);//设置标记的长度
        ui->qCustomPlotMusic->xAxis->setRange(0, 9);//设置范围
        ui->qCustomPlotMusic->xAxis->setBasePen(QPen(Qt::white));//设置轴基线颜色
        ui->qCustomPlotMusic->xAxis->setTickPen(QPen(Qt::white));//设置刻度颜色
        ui->qCustomPlotMusic->xAxis->grid()->setVisible(true);//网格可视
        ui->qCustomPlotMusic->xAxis->grid()->setPen(QPen(QColor(130, 130, 130), 0, Qt::DotLine));//网格虚线
        ui->qCustomPlotMusic->xAxis->setTickLabelColor(Qt::white);//设置刻度标签颜色
        ui->qCustomPlotMusic->xAxis->setLabelColor(Qt::white);//设置轴标签的颜色
    
        // 绘制yAxis:
        ui->qCustomPlotMusic->yAxis->setRange(0, 1000000);//设置轴范围的下限和上限
        ui->qCustomPlotMusic->yAxis->setPadding(5); // 设置轴的填充a bit more space to the left border:在左边边界多留一点空间
        ui->qCustomPlotMusic->yAxis->setLabel("播放次数(次)");
        ui->qCustomPlotMusic->yAxis->setBasePen(QPen(Qt::white));//设置轴基线颜色
        ui->qCustomPlotMusic->yAxis->setTickPen(QPen(Qt::white));//设置刻度线颜色
        ui->qCustomPlotMusic->yAxis->setSubTickPen(QPen(Qt::white));//设置子刻度线颜色
        ui->qCustomPlotMusic->yAxis->grid()->setSubGridVisible(true);//设置子网格可视
        ui->qCustomPlotMusic->yAxis->setTickLabelColor(Qt::white);//设置刻度标签颜色
        ui->qCustomPlotMusic->yAxis->setLabelColor(Qt::white);//设置轴标签的颜色
        ui->qCustomPlotMusic->yAxis->grid()->setPen(QPen(QColor(130, 130, 130), 0, Qt::SolidLine));//设置网格颜色和线型,网格实线
        ui->qCustomPlotMusic->yAxis->grid()->setSubGridPen(QPen(QColor(130, 130, 130), 0, Qt::DotLine));//设置子网格颜色和线型,网格虚线
    
        // 绘制yAxis2:
        ui->qCustomPlotMusic->yAxis2->setRange(0, 10000);//设置轴范围的下限和上限
        ui->qCustomPlotMusic->yAxis2->setPadding(5); // 设置轴的填充a bit more space to the left border:在左边边界多留一点空间
        ui->qCustomPlotMusic->yAxis2->setLabel("评论次数(次)");
        ui->qCustomPlotMusic->yAxis2->setBasePen(QPen(Qt::white));//设置轴基线颜色
        ui->qCustomPlotMusic->yAxis2->setTickPen(QPen(Qt::white));//设置刻度线颜色
        ui->qCustomPlotMusic->yAxis2->setSubTickPen(QPen(Qt::white));//设置子刻度线颜色
        ui->qCustomPlotMusic->yAxis2->grid()->setSubGridVisible(true);//设置子网格可视
        ui->qCustomPlotMusic->yAxis2->setTickLabelColor(Qt::white);//设置刻度标签颜色
        ui->qCustomPlotMusic->yAxis2->setLabelColor(Qt::white);//设置轴标签的颜色
        ui->qCustomPlotMusic->yAxis2->grid()->setPen(QPen(QColor(130, 130, 130), 0, Qt::SolidLine));//设置网格颜色和线型,网格实线
        ui->qCustomPlotMusic->yAxis2->grid()->setSubGridPen(QPen(QColor(130, 130, 130), 0, Qt::DotLine));//设置子网格颜色和线型,网格虚线
        ui->qCustomPlotMusic->yAxis2->setVisible(true);//默认为不可视,需要设置为可视
        // Add data添加数据:
        QVector<double> LoveTimesData, LoveTimeData;
        LoveTimesData << 1553 << 2454<< 7676 << 2434 << 5641 << 9655 << 3556<<6899;
        LoveTimeData   << 121334 << 65657 << 534343 << 65778 << 134356 << 978788 << 44345<<9545;
        LoveTimes->setData(ticks, LoveTimesData);//将容器内数据添加到对应刻度的点上,数量应相同
        LoveTime->setData(ticks, LoveTimeData);
    
        // setup legend设置说明图例:
        ui->qCustomPlotMusic->legend->setVisible(true);//说明图例可视
        ui->qCustomPlotMusic->axisRect()->insetLayout()->setInsetAlignment(0, Qt::AlignTop|Qt::AlignLeft);//AlignTop:顶端对齐,AlignHCenter:中心对齐
        ui->qCustomPlotMusic->legend->setBrush(QColor(255, 255, 255, 100));
        ui->qCustomPlotMusic->legend->setBorderPen(Qt::NoPen);//设置边框颜色
        QFont legendFont = font();//获取字体
        legendFont.setPointSize(10);//设置字体大小,必须大于0
        //legendFont.setStyleName(Qt::微软雅黑);
    
        ui->qCustomPlotMusic->legend->setFont(legendFont);//设置默认字体
        //ui->qCustomPlotMusic->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);//客户交互,界面可以移动
    
        //软件选项卡
        ui->radioButton_6->setChecked(true);//选中网易公开课
        ui->checkBox->setChecked(true);//选中网易公开课
    
    
        //ui->treeWidgetDigital->clear();
        ui->treeWidgetDigital->setColumnCount(1); //设置列数
        ui->treeWidgetDigital->setHeaderLabels(QStringList(tr("数码产品")));//设置头的标题
        ui->treeWidgetDigital->setHeaderHidden(false);
        QTreeWidgetItem *items1 = new QTreeWidgetItem(ui->treeWidgetDigital,
                               QStringList(QString("手机")));
        items1->setIcon(0,QIcon("E:\\Qt_Project\\QTabWidget\\1.ico"));
        QTreeWidgetItem *items11 = new QTreeWidgetItem(items1,
                               QStringList(QString("苹果")));
        items11->setIcon(0,QIcon("E:\\Qt_Project\\QTabWidget\\2.ico"));
        QTreeWidgetItem *items12 = new QTreeWidgetItem(items1,
                               QStringList(QString("华为")));
        items12->setIcon(0,QIcon("E:\\Qt_Project\\QTabWidget\\3.ico"));
        QTreeWidgetItem *items13 = new QTreeWidgetItem(items1,
                               QStringList(QString("小米")));
        items13->setIcon(0,QIcon("E:\\Qt_Project\\QTabWidget\\4.ico"));
    
        QTreeWidgetItem *items2 = new QTreeWidgetItem(ui->treeWidgetDigital,
                               QStringList(QString("笔记本电脑")));
        items2->setIcon(0,QIcon("E:\\Qt_Project\\QTabWidget\\5.ico"));
        QTreeWidgetItem *items21 = new QTreeWidgetItem(items2,
                               QStringList(QString("Dell")));
        items21->setIcon(0,QIcon("E:\\Qt_Project\\QTabWidget\\6.ico"));
        QTreeWidgetItem *items22 = new QTreeWidgetItem(items2,
                               QStringList(QString("华硕")));
        items22->setIcon(0,QIcon("E:\\Qt_Project\\QTabWidget\\7.ico"));
    
        QTreeWidgetItem *items3 = new QTreeWidgetItem(ui->treeWidgetDigital,
                               QStringList(QString("平板电脑")));
        items3->setIcon(0,QIcon("E:\\Qt_Project\\QTabWidget\\8.ico"));
    
        QList<QTreeWidgetItem *> rootList;
        QTreeWidgetItem *items4 = new QTreeWidgetItem;   //添加第一个父节点
        items4->setText(0,tr("数码相机"));
        items4->setIcon(0,QIcon("E:\\Qt_Project\\QTabWidget\\9.ico"));
        rootList.append(items4);
        QTreeWidgetItem *items41= new QTreeWidgetItem(items4,QStringList(QString("索尼"))); //添加子节点
        items41->setIcon(0,QIcon("E:\\Qt_Project\\QTabWidget\\10.ico"));
        items4->addChild(items41);
        ui->treeWidgetDigital->insertTopLevelItems(0,rootList);  //将结点插入部件中
        ui->treeWidgetDigital->expandAll(); //结点全部展开
        //ui->items1->setText(0, "手机");
        //ui->treeWidgetDigital->addTopLevelItem(new QTreeWidgetItem((QTreeWidget*)0));
        //ui->treeWidgetDigital->addTopLevelItem(tr("笔记本电脑"));
    
        //语言选项卡
        ui->listWidgetLanguage->addItem(tr("中文"));
        ui->listWidgetLanguage->addItem(tr("英语"));
        ui->listWidgetLanguage->addItem(tr("法语"));
        ui->listWidgetLanguage->addItem(tr("德语"));
        ui->listWidgetLanguage->addItem(tr("日语"));
        ui->listWidgetLanguage->addItem(tr("韩语"));
        ui->listWidgetLanguage->addItem(tr("俄语"));
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }

     显示效果


     

    完整代码


    简单示例百度网盘链接:https://pan.baidu.com/s/1oIeuz7A3q_eZQ7XY1CjzcA 
    提取码:ir81 

    综合示例百度网盘链接:https://pan.baidu.com/s/1rhM_9ij0cXGLdQ_kh3yPmw 
    提取码:ppbe 

     

    展开全文
  • QT5 自定义 QMessageBox大小

    万次阅读 2020-06-19 09:43:23
    代码如下: QMessageBox box; //设置文本框的大小 box.setStyleSheet("QLabel{" "min-width:100px;" "min-height:40px; " "font-size:16px;" "}"); box.setText(QString::fromLocal8Bit("请先登陆"))...
  • Qt5+安装包制作(Qt Installer Framework)》

    万次阅读 热门讨论 2018-11-07 15:52:56
    Qt5可以使用官方的Qt Installer Framework框架制作安装包 Qt Installer Framework框架提供了一组工具和实用程序,用于创建一次安装程序,并在所有受支持的桌面Qt平台上部署它们,而无需重写源代码。安装程序将在...
  • Qt5中文教程

    万次阅读 多人点赞 2018-08-30 14:53:29
    PyQt5安装: PyQt5软件开发:PyQt5中文教程
  • Qt5和Qt4的区别

    千次阅读 2019-12-31 11:42:02
    1、Qt5使用了基于 OpenGL 的场景绘画来加速 qml 加强了绘画效应和粒子系统 2、原来的 QWebView 更新为 QWebEngineView 全新的 QWebEngineView 使用的是 Chromium 引擎,通过使用 Qt WebChannel 通道来桥接 Qt 和 ...
  • Qt5+QtChart绘制二维图表》

    千次阅读 2018-12-10 11:12:35
    官方文档:http://doc.qt.io/qt-5/qtcharts-overview.html#line-and-spline-charts Qt Charts可以创建时尚,互动,以数据为中心的用户界面。Qt Charts使用Graphics View Framework来简化集成。图表组件可以用作...
  • linux下安装qt5和卸载qt5

    千次阅读 2018-11-11 20:06:13
    环境 :1系统:ubuntu...一安装qt5 1下载qt安装包 官网.qt5.8链接:https://www.qt.io/download-open-source/?hsCtaTracking=f977210e-de67-475f-a32b-65cec207fd03|d62710cd-e1db-46aa-8d4d-2f1c1ffdacea qt官方...
  • Qt工作笔记-Qt5中中文编码方面的笔记

    千次阅读 多人点赞 2020-04-22 13:46:11
    目前在使用国内的数据库和实时库接口。 说句实话,国内的东西与国外的东西比,在用户体验和接口调用上比还是存在很大的距离。...如果没有指定本地字符集,在qtcreator上开发或者其他Qt项目上,使用的是U...
  • 最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了。 首先,先介绍自己使用的环境。我使用的QT版本是。我的电脑...
  • QtChart可用于绘制折线图,在折线图中,数据点通过直线连接。要想绘制折线图至少要用到QLineSeries、QChart、QChartView这三个类。QLineSeries类用于创建有由一系列点组成的折线;QChart类用于控制整个图表界面的...
  • QT5程序打包发布

    千次阅读 2020-03-22 20:33:00
    当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行。编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装文件。 QT开发的...
  • Qt5+QtChart绘制饼图(QPieSeries)》

    千次阅读 2018-12-11 14:18:23
    完整代码 百度网盘链接:https://pan.baidu.com/s/14P5rP8_O4m3rVSxr3iIBiA  提取码:uy1k 
  • QT5实现简单的TCP通信

    万次阅读 多人点赞 2017-04-11 00:43:20
    这段时间用到了QT的TCP通信,做了初步的学习与尝试,编写了...1、客户端的代码比服务器稍简单,总的来说,使用QT中的QTcpSocket类与服务器进行通信只需要以下5步: (1)创建QTcpSocket套接字对象 socket = new Q...

空空如也

1 2 3 4 5 ... 20
收藏数 34,185
精华内容 13,674
关键字:

qt5