Qt-C++基础界面开发

  • 1 Display Widget控件的简单使用
    • 1.1 label控件的基本操作
    • 1.2 textBrowser控件的基本操作
    • 1.3 LCD Number控件的基本操作
    • 1.4 progressBar控件的基本操作
    • 1.5 graphic View控件的基本操作
      • 1.5.1 绘制柱状图
      • 1.5.2 绘制折线图
      • 1.5.3 绘制饼状图
  • 2 Item Widget控件的简单使用
    • 2.1 Tree Widget的基本操作
    • 2.2 Table Widget的基本操作

1 Display Widget控件的简单使用

部分Display Widget的控件,只能作为显示(display)使用,因此部分情况下,是不需要信号和槽函数的

1.1 label控件的基本操作

label一般用来作为说明文字和控件组合在一起
label还可以作为背景图片添加在界面上
label作为光板对其属性进行操作,达到某些效果,如红绿灯等设计label的颜色实现变化

1.2 textBrowser控件的基本操作

1、添加ui进qt designer,并对控件命名
2、只作显示使用,不需要信号和槽函数
3、默认大类为QTextBrowser
4、直接在界面的cpp文件对其进行显示

1、 设计界面的textBrowser对其进行命名


2、对其进行内容的清除添加操作

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 代码在此后面添加// 默认大类为QTextBrowserui->textBrowser->clear();ui->textBrowser->append("hello");}MainWindow::~MainWindow()
{delete ui;
}

3、显示效果

1.3 LCD Number控件的基本操作

1、添加ui进qt designer,并对控件命名
2、直接在界面的cpp文件对其进行显示

    ui->setupUi(this);// 代码在此后面添加ui->LCD1->display("10");

1.4 progressBar控件的基本操作

1、添加ui进qt designer,并对控件命名
2、直接在界面的cpp文件对其进行显示

    ui->setupUi(this);// 代码在此后面添加// 设置区间、数值等等ui->pgb->setValue(88);

1.5 graphic View控件的基本操作

1、graphic View可以用来显示一些图形
2、其实采用widget控件也能显示图像
3、此处包括一些基础图像的绘制,但是图像的一些设置需要摸索

  • .pro文件添加charts,例如
QT       += charts
QT       += widgets
  • 在界面的.h文件添加绘图的类
#include <QtCharts>
#include <QGraphicsItem>
#include <QGraphicsView>
  • 在界面UI添加graphic View,并命名

  • 此时的.h文件都如下所示,只是添加了几个头文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include<QPushButton>
#include <QtCharts>
#include <QGraphicsItem>
#include <QGraphicsView>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

1.5.1 绘制柱状图

在界面的.cpp文件实现柱状图的绘制

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 代码在此后面添加// 1、设置集合QBarSet *set0 = new QBarSet("产品1");QBarSet *set1 = new QBarSet("产品2");// 2、设置集合的数据*set0<<4<<6<<8;*set1<<2<<3<<4;// 3、将集合和数据添加到柱状图QBarSeries *series = new QBarSeries();series->append(set0);series->append(set1);// 4、创建图像QChart *chart = new QChart();chart->addSeries(series);// // 不需要title// chart->setTitle("生产直方图");chart->setAnimationOptions(QChart::SeriesAnimations);// 5、X轴的文字内容QStringList categories;categories<<"1月"<<"2月"<<"3月";// 6、创建坐标值并添加坐标轴内容QBarCategoryAxis *axis = new QBarCategoryAxis();axis->append(categories);chart->createDefaultAxes();chart->setAxisX(axis, series);// 7、将坐标轴文字竖排axis->setLabelsAngle(-90);// 8、显示下方注释,如红色是产品1,蓝色是产品2chart->legend()->setVisible(true);chart->legend()->setAlignment(Qt::AlignBottom);// 9、显示图像在graphic View上QChartView *chartView = new QChartView(chart,ui->gview);chartView->setRenderHint(QPainter::Antialiasing);chartView->resize(ui->gview->size());// 设计图像的主题chartView->chart()->setTheme(QChart::ChartThemeBlueCerulean);chartView->show();}MainWindow::~MainWindow()
{delete ui;
}

显示的效果如下图所示:

1.5.2 绘制折线图

在cpp文件绘制折线图

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 代码在此后面添加// 1、设置集合QLineSeries *lineseries = new QLineSeries();// 2、设置集合的数据for(int i = 0; i < 3; ++i){lineseries->append(i,2*(i+1));};// 3、创建图像QChart *chart = new QChart();chart->addSeries(lineseries);// // 不需要title// chart->setTitle("生产直方图");chart->setAnimationOptions(QChart::SeriesAnimations);// 4、X轴的文字内容QStringList categories;categories<<"1月"<<"2月"<<"3月";// 5、创建坐标值并添加坐标轴内容QValueAxis *axisY = new QValueAxis();chart->setAxisY(axisY, lineseries);axisY->setRange(0, 8);// 6、将坐标轴文字竖排QBarCategoryAxis *axis = new QBarCategoryAxis();axis->append(categories);chart->setAxisX(axis, lineseries);axis->setLabelsAngle(-90);// 7、显示下方注释,如红色是产品1,蓝色是产品2chart->legend()->setVisible(true);chart->legend()->setAlignment(Qt::AlignBottom);// 8、显示图像在graphic View上QChartView *chartView = new QChartView(chart,ui->gview);chartView->setRenderHint(QPainter::Antialiasing);chartView->resize(ui->gview->size());// 设计图像的主题chartView->chart()->setTheme(QChart::ChartThemeBlueCerulean);chartView->show();
}MainWindow::~MainWindow()
{delete ui;
}

效果如下图所示:

1.5.3 绘制饼状图

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 代码在此后面添加QPieSeries *pieseries = new QPieSeries();QChart *piechart = new QChart();pieseries->setHoleSize(0.5);pieseries->append("剩余产品数量",80);QPieSlice *slice = pieseries->append("已完成数量", 20);slice->setExploded();slice->setLabelVisible();QChartView *piechartView = new QChartView(piechart,ui->gview);piechartView->setRenderHint(QPainter::Antialiasing);// 显示图像piechartView->chart()->addSeries(pieseries);piechartView->chart()->legend()->setAlignment(Qt::AlignBottom);piechart->setTitle("位标器完成比例");
//        piechartView->chart()->legend()->hide();piechart->setFont(QFont("Arial", 6));piechartView->chart()->setTheme(QChart::ChartThemeBlueCerulean);piechartView->resize(ui->gview->size());piechartView->show();}MainWindow::~MainWindow()
{delete ui;
}

实现效果:

2 Item Widget控件的简单使用

2.1 Tree Widget的基本操作

tree widget的操作包括设计条目和内容等其他操作
创建各个等级的栏目的顺序
注意创建子列表的操作
其他操作包括:对字体颜色修改、折叠或者展开状态

1、在Qt designer界面设计tree widget并命名
2、在界面的.h文件中添加tree widget的类
3、在界面的.cpp文件中对其进行操作

1、在界面中设计tree widget 其中变量名为 treew

2、在.h文件中添加#include <QTreeWidgetItem>,只需要添加头文件即可

3、在.cpp文件对tree widget进行操作

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 代码在此后面添加// 创建treewidget显示层级关系和文本数据的表头和框架// 1、对树状条进行连接,设置标签列的名称ui->treew->setHeaderLabels(QStringList()<<"第一列"<<"第二列"<<"第三列"<<"第四列");ui->treew->setSelectionMode(QAbstractItemView::ExtendedSelection);// 2、设置列宽ui->treew->setColumnWidth(0, 300);ui->treew->setColumnWidth(1, 100);ui->treew->setColumnWidth(2, 100);ui->treew->setColumnWidth(3, 100);// 3.1、创建1级下拉栏QTreeWidgetItem* item_0=new QTreeWidgetItem(QStringList()<<"我是一级下拉栏");ui->treew->addTopLevelItem(item_0);// 3.2、创建2级目录,并添加到1级栏的子栏QTreeWidgetItem* item_1 = new QTreeWidgetItem(QStringList()<<"我是二级下拉栏");item_0->addChild(item_1);// 3.3、创建3级目录QTreeWidgetItem* item_2 = new QTreeWidgetItem(QStringList()<<"我是三级栏目");item_1->addChild(item_2);// 3.4、创建4级目录QTreeWidgetItem* item_3 = new QTreeWidgetItem(QStringList()<<"我是四级栏目");item_2->addChild(item_3);// Tips:小技巧,将控件添加进容器,方便后续循环设置行列值QVector<QTreeWidgetItem*> item_list = {item_0,item_1,item_2,item_3};// 4、更新treewidget各个栏上的数值,值得注意的是setdata(列,行,数据),对于某一行的数据,默认行都是0//  即本例中i表示行,setData的1,2,3表示列,第0列被栏目名称占据//  设置字体颜色为红色,即rgb为255,0,0for(int i = 0; i < 4; ++i){item_list[i]->setData(1,0,QVariant(i));item_list[i]->setTextColor(1,QColor(255, 0, 0));item_list[i]->setData(2,0,QVariant(i+1));item_list[i]->setTextColor(2,QColor(255, 0, 0));item_list[i]->setData(3,0,QVariant(i+2));item_list[i]->setTextColor(3,QColor(255, 0, 0));}// 5、将treewidget展开ui->treew->expandAll();}MainWindow::~MainWindow()
{delete ui;
}

4、最后实现效果如下所示

2.2 Table Widget的基本操作

table widget的操作包括设计条目和内容等其他操作
创建列表对象的操作
其实列表可以作为输入传入系统
其他操作包括:对字体颜色修改、默认适应行列高度等

1、在Qt designer界面设计table widget并命名
2、在界面的.h文件中添加QTableWidgetItem的类
3、在界面的.cpp文件中对其进行操作

1、在界面中设计table widget 其中变量名为 tbw

2、在.h文件中添加#include <QTableWidgetItem>,只需要添加头文件即可

3、在.cpp文件对tree widget进行操作

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 代码在此后面添加// 1、设置列表表头行和内容,默认是n*4的表格ui->tbw->setColumnCount(4);ui->tbw->setHorizontalHeaderLabels(QStringList()<<"第一列"<<"第二列"<<"第三列"<<"第四列");// 2、表头默认适应窗口ui->tbw->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);ui->tbw->verticalHeader()->setVisible(false);// 3、设置行的数量为10行ui->tbw->setRowCount(10);//  4.1、更新行上的内容,行数10for(int i = 0; i < 10; ++i){// 4.2、更新每列内容,共有4列for(int j = 0; j < 4; ++j){// 4.3、新建table的item,构造函数new里赋值,即设计了表格的内容QTableWidgetItem* temp_item = new QTableWidgetItem(QString::number(i)+","+QString::number(j));// 4.4、将子项item按照行列位置的关系添加到widget里ui->tbw->setItem(i,j,temp_item);// 4.5、主题设置,包括纯色背景设置字体颜色,居中显示temp_item->setTextColor(QColor(255, 0, 0));ui->tbw->item(i,j)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);}}}MainWindow::~MainWindow()
{delete ui;
}

Qt-C++基础界面开发(2- 简单Display Widget控件和Item Widget控件的使用)相关推荐

  1. QT Creator应用程序开发——01简单按钮显示

    目录 前言 一.新建项目 二.设计ui页面和编写程序 (一)设计ui页面 1.设置按钮 2.设置标签 3.设置转到槽 (二)编写程序 (三)构建运行 (三)测试 结语 前言 本系列文章,是经博主的QT ...

  2. Qt 物联网系统界面开发 “ 2022湖南省大学生物联网应用创新设计竞赛技能赛 ——应用物联网的共享电动自行车 ”

    文章目录 前言 一.实现效果 视频演示 二.程序设计 1. 界面背景图设计 2. 信号槽设计 3. 定时器设计 4. 动态曲/折线图的设计 5. 摄像头扫码 6. 注册设计 7. 登录设计 8. 巡检 ...

  3. 基于Qt的跨平台应用开发(转)

    转自:http://www.cnblogs.com/R0b1n/p/4106613.html 1 Qt简介  Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架.它提供给应用程序 ...

  4. python实现桌面软件界面开发?

    推荐使用qt designer进行界面开发,生成的ui后缀文件复制到项目目录,再使用命令生成py文件,然后新建一个py文件加载该UI便可,操作步骤,请前往http://1024k.net 1. 使用命 ...

  5. Qt使用Qt Designer进行界面设计

    上一章我们使用代码直接进行界面设计,这一章我们使用Qt Designer进行界面设计,简单直接,所见即所得,大大提高了工作效率,特别是对于复杂界面. 1熟悉Qt Designer Qt Designe ...

  6. 一个 QT 程序带你入门图形界面开发

    随着计算机的快速发展,客户对各种应用软件的需求急剧增加.但用户不可能像程序员一样输入各种命令来操作程序,只想通过鼠标点击几下就完成需求.那么这个时候,图形界面就应运而生了. QT 是软件开发领域非常著 ...

  7. Ubuntu 安装 Qt 开发环境 简单实现

    2019独角兽企业重金招聘Python工程师标准>>> Ubuntu 安装 Qt 开发环境 简单实现是本文要介绍的内容,内容很短,取其精华,详细介绍Qt 类库的说明,先来看内容. 一 ...

  8. linux里qt画直线_Qt与Web混合开发(一)简单使用

    前言 <Qt与Web混合开发>系列文章,主要讨论Qt与Web混合开发相关技术. 这类技术存在适用场景,例如:Qt项目使用Web大量现成的组件/方案做功能扩展, Qt项目中性能无关/频繁更新 ...

  9. Android界面开发基础

    前言 安卓开发(指原生开发)和普通的Java开发,web开发最大的不同是什么?界面.老早的Java awt/swing以及现在的JavaFX,里面的UI库和安卓完全不是一个体系.至于web开发的各种U ...

最新文章

  1. Easy3D:一个轻量级、易用、高效的C++库,用于处理和渲染3D数据
  2. redis中的order set 有序集合
  3. mint java_Linux mint使用
  4. centos dovecot mysql_Centos6.4 配置postfix+dovecot+mysql
  5. python3 正则 去除 html标签、提取正文内容_Python通过正则表达式去除(过滤)HTML标签,提取文字...
  6. javascript脚本语言_10分钟快速掌握Javascript核心特性
  7. 一台交换机可以有多个ip段吗_网络设备:中继器、集线器、网桥、交换机、路由器、网关的总结!...
  8. 详解 Spring 3.0 基于 Annotation 的依赖注入实现(转)
  9. cdr添加节点快捷键_cdr x6快捷键大全 cdr x6(coreldraw x6)快捷键汇总
  10. 场景法设计测试用例ATM机取款问题
  11. 心理学与生活 -人格与动机
  12. 数据分析可视化系列(四)B站关键词搜索结果
  13. 实时数据库简介和比较---PI
  14. 杭电 2022 海选女主角
  15. 解构TypeScript中class
  16. 做好自动化运维平台需要哪些技能?
  17. 什么是舆情监测系统,如何选择舆情监测系统?
  18. html5 好看的折叠效果,9款HTML5实现的超酷特效
  19. DirectX11 With Windows SDK--32 SSAO(屏幕空间环境光遮蔽)
  20. 电脑重启只剩下c盘怎么办_重装系统后电脑只剩下C盘了怎么办?

热门文章

  1. 迅雷下载原理的源代码(linux c)
  2. .net 4.5 MVC5 降级至 .net 4.0 MVC 4
  3. 一篇带你走进程序设计的准则——DAO和MVC设计模式
  4. 初一年级上学期计算机课知识总结,精选七年级上册信息技术教案范文3篇
  5. php 接口token生成验证
  6. ubuntu 内核降级,切换linux内核版本
  7. 计算机的论文创新点怎么写,如何写论文创新点.doc
  8. SitePoint Podcast#49:Buzz Kill
  9. Java公历(阳历)转换农历(阴历)工具类
  10. CXF3.0.2+Spring3.2.14 Web Service入门实例二