Qt 5.9.5学习笔记第三节课

  • 学习目标
  • 1、Qt资源图标添加和使用
    • 1.1添加资源文件
    • 1.2qmake让资源文件生效
    • 1.3修改widget应用程序窗口ICO
      • 1.3.1第一种方法
      • 1.3.2 第二种方法
  • 二、Buttons 按钮
      • 2.1 QPushButton(按压按钮)
        • PushButton设置文字
        • 修改pushbutton样式
        • 实现pushbutton按钮菜单栏功能
      • 2.2 QTool Button(工具按钮)
      • 2.3 QRadioButton(单选按钮)以及QButtonGroup(选项按钮组)
      • 2.4 QCheckBox(多选按钮)(研究中)
    • 还未编辑完成,接下来一天写一个控件介绍,属实太多了。(懒)

学习目标

本节介绍QT 的基本控件,包括:
1、输入按钮
2、输入部件
3、显示部件
学完本课程应该学会的基本知识有:
Qt资源图标添加和使用
Button(按键)的使用
InputWidgets (输入控件)
DisplayWidgets (显示控件)

1、Qt资源图标添加和使用

添加程序中需要使用的资源,以及资源的路径(演示如何添加qrc文件)

1.1添加资源文件

第一步添加图片文件夹到程序文件夹下

第二步右击项目,点击添加新文件

第三步:点击Qt
点击Qt Resource File
然后确定即可

第四步:名称根据用途取名;
之后点击下一步和完成即可。

第五步:逐个添加前缀
5.2 需要在前缀处输入/png然后回车一下就好了
如果还要添加其他前缀重复5.1就好了,要修改名称

第六步:逐个添加文件

第七步:添加后效果展示

1.2qmake让资源文件生效

1.3修改widget应用程序窗口ICO

修改widgt的窗口ICO有两种方法,
第一种是在属性栏中修改
第二种是在.pro文件中插入代码修改(推荐)

1.3.1第一种方法

第一步:在ui界面找到旁边的widget的属性栏中的windowicon点击选择资源文件

第二步:选择ico文件即可,然后点击ok

1.3.2 第二种方法

在代码pro文件最底下添加这段代码:

RC_ICONS += ./image/ico/图标文件名.ico

二、Buttons 按钮

QT中有六种按钮组件,分别是:
1、按压按钮QPushButton
2、工具按钮QToolButton
3、单选按钮 QRadioButton
4、多选按钮QCheckBox
5、命令链接按钮QCommandLinkButton
6、按钮盒 QButtonBox。

2.1 QPushButton(按压按钮)

pushButton是QT中常用的按钮,主要常用函数为:

SetText //设置文字
Setmenu //设置菜单
cilcked //信号

PushButton设置文字

点击前:

点击后:

代码部分:
widget.h源代码

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>namespace Ui {class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private slots:void on_pushButton_clicked();private:Ui::Widget *ui;bool debiceState;//用debiceState来判断是否点击
};#endif // WIDGET_H

widget.cpp源代码

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),debiceState(false),//默认为false状态ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{if(!debiceState)//判断是否为真{debiceState = true;ui->pushButton->setText(QString::fromLocal8Bit("断开设备"));}else{debiceState = false;ui->pushButton->setText(QString::fromLocal8Bit("连接设备"));}
}

修改pushbutton样式

看图操作吧!
1、先右击pushbutton按钮->点击“改变样式表”->点击图中border-image

2、选择图片点击ok

3、点击ok即可

实现pushbutton按钮菜单栏功能

效果图:

代码部分:
1、widget.h源代码

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDebug>
#include <QMenu>
namespace Ui {class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private slots:void on_pushButton_clicked();void on_pushButtonToolBox_clicked();private:Ui::Widget *ui;bool debiceState;//用debiceState来判断是否点击
};#endif // WIDGET_H

2、widget.cpp源代码

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),debiceState(false),ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked()
{if(!debiceState){debiceState = true;ui->pushButton->setText(QString::fromLocal8Bit("断开设备"));}else{debiceState = false;ui->pushButton->setText(QString::fromLocal8Bit("连接设备"));}
}void Widget::on_pushButtonToolBox_clicked()
{//点击后出现类似QToolBox类提供了一列选项卡小部件项目栏QMenu *pMenu=new QMenu(this);  //QAction类提供了一个可以插入到小部件中用项目栏。pMenu->addAction(QString::fromLocal8Bit("第一项"));pMenu->addAction(QString::fromLocal8Bit("第二项"));pMenu->addSeparator();//分隔符pMenu->addAction(QString::fromLocal8Bit("第一项"));pMenu->addAction(QString::fromLocal8Bit("第二项"));ui->pushButtonToolBox->setMenu(pMenu);
}

2.2 QTool Button(工具按钮)

QTool Button类提供了用于命令或选项可以快速访问的按钮,通常可以用在 QTool Bar里面。
一般不会放在Widget中直接使用,一般放在Main window窗口的Tool Bar里面。

效果图:

tool button可以不用太多代码,更多是UI界面操作。
UI界面布局

参考程序(下面会附上操作步骤)


mainwindow.cpp源代码

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_action_triggered()
{qDebug()<<QString::fromLocal8Bit("复制成功");
}void MainWindow::on_action_2_triggered()
{qDebug()<<QString::fromLocal8Bit("粘贴成功");
}void MainWindow::on_action_3_triggered()
{close();
}void MainWindow::on_toolButton_clicked()
{qDebug()<<QString::fromLocal8Bit("这是ToolButton");
}void MainWindow::on_pushButton_clicked()
{qDebug()<<QString::fromLocal8Bit("这是pushButton");
}

操作步骤:
步骤一:

步骤二:接下来选择好自己要用png图片或者ico图片就可以了,然后点击ok

步骤二附图:

步骤三:

步骤四:选择默认的触发槽

步骤五:导入上面的代码即可,注意自己命名的对象名称

2.3 QRadioButton(单选按钮)以及QButtonGroup(选项按钮组)

(一) QRadioButton 单选按钮其状态分为“选中”和“未选中”,单选框一般用于在单选题。

主要常用函数为:
1、steText() ;//设置文本
2、isChecked(); //检查是否选择
3、setChecked();//设置检查
4、QButtonGroup //选项按钮组

1、steText()函数设置文本.

点击后修改。

源代码:
dialog.cpp源码

#include "dialog.h"
#include "ui_dialog.h"Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog)
{ui->setupUi(this);
}Dialog::~Dialog()
{delete ui;
}void Dialog::on_pushButtonChange_clicked()
{ui->radioButtonONE->setText(QString::fromLocal8Bit("修改后"));
}

2、isChecked()函数Checked是否选择
3、setChecked()函数设置Checked;
4、buttonGroup按钮组。
这俩个函数以及buttonGroup按钮组一起介绍了。
第一个:就如下面图片中案例一样,选择一个城市后点击查看城市,会弹出一个框框。提示你选择的城市是什么。
第二个:下列有两个buttonGroup按钮组,当你选择buttonGroup_2时,此时湖南那个选项会自动选择上。详细还是看源码。有时候说不清楚。源码更明白。
第三个:buttonGroup按钮组可以把一个或者多个选项放进去,像一个局部作用域一样。在此局部作用域内只能选择一个。


widget.cpp源码

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}void Widget::on_radioButton_changSha_clicked(bool checked)
{if(checked){ui->radioButton_huNan->setChecked(true);}
}void Widget::on_radioButton_yueYang_clicked(bool checked)
{if(checked){ui->radioButton_huNan->setChecked(true);}
}void Widget::on_radioButton_zhuZhou_clicked(bool checked)
{if(checked){ui->radioButton_huNan->setChecked(true);}
}void Widget::on_radioButton_guangZhou_clicked(bool checked)
{if(checked){ui->radioButton_guangDong->setChecked(true);}
}void Widget::on_radioButton_shenZhen_clicked(bool checked)
{if(checked){ui->radioButton_guangDong->setChecked(true);}
}void Widget::on_radioButton_dongGuan_clicked(bool checked)
{if(checked){ui->radioButton_guangDong->setChecked(true);}
}void Widget::on_pushButton_clicked()
{QString checkedProvince;QString checkedCity;if(ui->radioButton_huNan->isChecked()){checkedProvince =  QStringLiteral("湖南省");if(ui->radioButton_changSha->isChecked()){checkedCity =  QStringLiteral("长沙");}if(ui->radioButton_yueYang->isChecked()){checkedCity =  QStringLiteral("岳阳");}if(ui->radioButton_zhuZhou->isChecked()){checkedCity =  QStringLiteral("株洲");}}if(ui->radioButton_guangDong->isChecked()){checkedProvince =  QStringLiteral("湖南省");if(ui->radioButton_guangZhou->isChecked()){checkedCity =  QStringLiteral("广州");}if(ui->radioButton_shenZhen->isChecked()){checkedCity =  QStringLiteral("深圳");}if(ui->radioButton_dongGuan->isChecked()){checkedCity =  QStringLiteral("东莞");}}QMessageBox::information(this, QStringLiteral("选中的城市"),checkedProvince + ":" + checkedCity,QStringLiteral("确定"));
}

widget.c源码:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QMessageBox>namespace Ui {class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private slots:void on_radioButton_changSha_clicked(bool checked);void on_radioButton_yueYang_clicked(bool checked);void on_radioButton_zhuZhou_clicked(bool checked);void on_radioButton_guangZhou_clicked(bool checked);void on_radioButton_shenZhen_clicked(bool checked);void on_radioButton_dongGuan_clicked(bool checked);void on_pushButton_clicked();private:Ui::Widget *ui;
};#endif // WIDGET_H

Group Box编组框:

效果图:边框一样的东西就是Group Box,把QRadioButton拖进去就可以使用,其中作用和ButtonGroup一样

2.4 QCheckBox(多选按钮)(研究中)

(一) QCheckBox复选项按钮, 状态分为选中和未选中,复选框一般用于在多个中选择多 个。

主要常用函数为:
1、steText() ;//设置文本
2、setCheckState(); //
3、stateChanged();//
4、QButtonGroup //选项按钮组 这个不二次介绍了,详细操作在上面。

1、steText() 函数就是设置文本基本思路和QRadioButton一样,就不多做介绍
2、setCheckState()函数

还未编辑完成,接下来一天写一个控件介绍,属实太多了。(懒)

Qt 5.9.5学习笔记第三节课相关推荐

  1. CCSA学习笔记 第三节 防火墙原理与基本配置

    CCSA学习笔记 第三节 防火墙原理与基本配置 一.防火墙技术 1.包过滤技术=访问控制列表(第一代防火墙技术)基础的访问控制列表分为两种a.标准的访问控制列表:基于数据包的源IP地址来进行访问控制b ...

  2. HTML4基本编译原理,Stanford公开课《编译原理》学习笔记(1~4课)

    课程里涉及到的内容讲的还是很清楚的,但个别地方有点脱节,任何看不懂卡住的地方,请自行查阅经典著作<Compilers--priciples, Techniques and Tools>(也 ...

  3. 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第二十一课:Cocos2D-X网格特效1-3

    [麦可网]Cocos2d-X跨平台游戏开发---学习笔记 第二十一课:Cocos2D-X网格特效1-3 ================================================ ...

  4. [北大肖臻-区块链技术与应用笔记]第三节课——共识机制

    文章目录 [北大肖臻-区块链技术与应用笔记]第三节课--共识机制 一.数字货币 数字货币与纸质货币 解决双花攻击--中心化方法 去中心化 举例 二.区块结构 块头(block header) 块身(b ...

  5. 大数据学习笔记第1课 Hadoop基础理论与集群搭建

    大数据学习笔记第1课 Hadoop基础理论与集群搭建 一.环境准备 二.下载JDK 三.安装JDK 四.下载hadoop 五.安装hadoop集群 六.打通3台服务器的免密登录 七.hadoop集群配 ...

  6. TensorFlow学习笔记--第三节张量(tensor)及其定义方法

    目录 在TensorFlow中,所有的数据通过张量的形式来表示 1张量及属性: 1.1维数(阶) 1.2 形状 1.3数据类型 TensorFlow 支持以下三种类型的张量: **1.常量** **2 ...

  7. 深度学习笔记第一门课第一周:深度学习引言

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  8. 珍大户《认知世界的经济学》学习笔记 --第19课 时间补偿 第20课 利率 国债 MLF SLF OMO 利率

    珍大户<认知世界的经济学>学习笔记 – 第五章 第19课 时间补偿 文章目录 珍大户<认知世界的经济学>学习笔记 -- 第五章 第19课 时间补偿 把钱借给国家 通货膨胀程度 ...

  9. 【金字塔Python量化学习笔记】01课:利用Python导出价格数据

    作为一个交易员,一直都想学Python量化,无奈文科生一个,根本不懂编程,看了vn.py的教程头大了,买了课但一直都学不下去.最近看了看金字塔的Python量化系统,感觉还可以,代码编写没那么难,我P ...

最新文章

  1. h5新增的属性php,HTML5中form的新增属性或元素
  2. 什么是‘YTowOnt9‘?
  3. 35+ Top Apache Tomcat Interview Questions And Answers【转】
  4. 浙江万里学院计算机专业宿舍,浙江万里学院宿舍条件,宿舍几人间环境好不好(图片)...
  5. codeforces 765 E Tree Folding
  6. 年过35岁的程序员都去哪了?一张图道尽老程序员们的花样出路
  7. 软件项目组织管理(七)项目成本管理
  8. java胜任理由_Java在几乎所有方面均能胜任本机响应
  9. Android UI开发第四十篇——ScrollTricks介绍
  10. 《愤怒的小鸟大电影》分析报告
  11. R语言(三) 你是我唯一的光 | 基于《白夜行》的文本可视化分析
  12. html 鼠标单击显示div,3.1.2 利用鼠标单击实现DIV的选取
  13. win10卸载office2016提示:安装程序包的语言不受系统支持
  14. 微信小程序实现雪花飘落的效果
  15. QQ空间最新免费个人形象设置方法
  16. 手机端html5网页音乐播放,js实现移动端H5页面音乐播放,兼容微信 safari浏览器...
  17. 电源学习-DCDC电源分类
  18. 「州晖」固定支架、活动支吊架、抗震支架简介
  19. java小项目 ATM机(简易版)
  20. Qt 窗口最大化,全屏无边框显示

热门文章

  1. 《实用技巧》网页保存方式(完整保存)总结
  2. 设计原汁原味的 Windows Phone 应用
  3. 筛法(线性筛,厄拉多塞筛)
  4. Compact行记录
  5. Windows更新一直卡在“正在检查更新”如何解决
  6. 618前夜:听8年电商操盘手的“数据运营技巧”
  7. 如何恢复文件夹隐藏文件?超实用的2种技巧来了
  8. ntopng安装和基本使用教程
  9. Chrome 快速清理某个地址缓存
  10. ceph存储 smartctl用法小结