12月28日(结束)

1.界面

image.png
布局:
栅格、水平、垂直
弹簧

默认窗口和控件有:9像素间隙

如下布局方式:
image.png

2.控件

2.1button控件

2.1.1toolbotton

一般用在文字加图片
image.png
image.png选择图片和文字的格式,是否浮现

2.1.2.Radio button and groupbox

image.png
外面是box
里面是radio button
这样两边的都不干涉,都可以选择

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. Widget::Widget(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::Widget)
  6. {
  7. ui->setupUi(this);
  8. //设置单选按钮默认选择
  9. ui->rBtnMan->setChecked(true);
  10. //选中女后 打印信息
  11. connect(ui->rBtnWoman, &QRadioButton::clicked, [](){
  12. qDebug() << "选中女";
  13. });
  14. }
  15. Widget::~Widget()
  16. {
  17. delete ui;
  18. }

2.1.3.checkBox

image.png

  1. //多选按钮 2s是选中 0是未选中 可选 半选
  2. connect(ui->cBoxPrice, &QCheckBox::stateChanged, [=](int state){
  3. qDebug() << state;
  4. });

2.2 ItemWidget

2.2.1 QListWidget控件

QListWidgetItem *item -> 每行内容
listWidget->addItem(item)
设置居中方式item->setTextAlignment(Qt::AlignHCenter);
用additems 一次性添加多行
image.png

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. Widget::Widget(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::Widget)
  6. {
  7. //用listWidget写诗
  8. // QListWidgetItem *item = new QListWidgetItem("锄禾日当午");
  9. // //一行诗放到listWidget控件
  10. // ui->listWidget->addItem(item);
  11. // item->setTextAlignment(Qt::AlignHCenter);
  12. // QStringList QList<QString>
  13. QStringList list;
  14. list << "锄禾日当午" << "汗滴禾下土" << "谁知盘中餐" << "粒粒皆辛苦";
  15. ui->listWidget->addItems(list);
  16. }
  17. Widget::~Widget()
  18. {
  19. delete ui;
  20. }

2.2.2 QTreeWidget控件

1. 设置头 (只是在原有界面设置而已,所以不用new)
ui->treeWidget->setHeaderLabels(QStringList()<< “英雄”<< “英雄介绍”);
2. 创建根节点(新创建的,所以需要new)
QTreeWidgetItem liItem = new QTreeWidgetItem(QStringList()<< “力量”);
3. 添加根节点 到 树控件上
ui->treeWidget->addTopLevelItem(liItem);
*4. 添加子节点(创建子结点,也需要new)

liItem->addChild(l1);
利用QStringList()<<”…” 左移实现添加字符串到List列表
image.png

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. Widget::Widget(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::Widget)
  6. {
  7. ui->setupUi(this);
  8. //设置水平头 匿名函数
  9. ui->treeWidget->setHeaderLabels(QStringList() << "英雄" << "英雄介绍");
  10. QTreeWidgetItem *liItem = new QTreeWidgetItem(QStringList() << "力量");
  11. QTreeWidgetItem *mingItem = new QTreeWidgetItem(QStringList() << "敏捷");
  12. QTreeWidgetItem *zhiItem = new QTreeWidgetItem(QStringList() << "智力");
  13. //加载顶层结点
  14. ui->treeWidget->addTopLevelItem(liItem);
  15. ui->treeWidget->addTopLevelItem(mingItem);
  16. ui->treeWidget->addTopLevelItem(zhiItem);
  17. //追加子节点
  18. QStringList heroL1;
  19. heroL1 << "刚被猪" << "前排坦克,能在吸收伤害的同时造成可观的范围输出";
  20. QTreeWidgetItem *l1 = new QTreeWidgetItem(heroL1);
  21. liItem->addChild(l1);
  22. }
  23. Widget::~Widget()
  24. {
  25. delete ui;
  26. }

2.2.3 QTableWidget

(1)使用QStringList() << “…”
(2)使用QStringList nameList;(nameList[i])
(3)使用QList < QString > sexList;(sexList.at[i])
image.png

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. Widget::Widget(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::Widget)
  6. {
  7. ui->setupUi(this);
  8. //TableWidget控件
  9. //设置列数
  10. ui->tableWidget->setColumnCount(3);
  11. //设置水平表头
  12. ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "姓名" << "性别" << "年龄");
  13. //设置行数
  14. ui->tableWidget->setRowCount(5);
  15. //设置正文
  16. ui->tableWidget->setItem(0, 0, new QTableWidgetItem("亚瑟"));
  17. QStringList nameList;
  18. nameList << "亚瑟" << "赵云" << "张飞" << "关羽" << "花木兰";
  19. QList<QString> sexList;
  20. sexList << "男" << "男" << "男" << "男" << "女";
  21. for (int i = 0; i < 5; ++i) {
  22. int col = 0;
  23. ui->tableWidget->setItem(i, col++, new QTableWidgetItem(nameList[i]));
  24. //at 方法不会越界
  25. ui->tableWidget->setItem(i, col++, new QTableWidgetItem(sexList.at(i)));
  26. //QString->int
  27. ui->tableWidget->setItem(i, col++, new QTableWidgetItem(QString::number(i+18)));
  28. }
  29. }
  30. Widget::~Widget()
  31. {
  32. delete ui;
  33. }

2.3 other

1.

image.png

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. Widget::Widget(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::Widget)
  6. {
  7. ui->setupUi(this);
  8. //栈控件使用
  9. //设置默认定位 不同index
  10. ui->stackedWidget->setCurrentIndex(0);
  11. //btn1
  12. connect(ui->btn_1, &QPushButton::clicked, [=](){
  13. ui->stackedWidget->setCurrentIndex(0);
  14. });
  15. //btn2
  16. connect(ui->btn_2, &QPushButton::clicked, [=](){
  17. ui->stackedWidget->setCurrentIndex(1);
  18. });
  19. }
  20. Widget::~Widget()
  21. {
  22. delete ui;
  23. }

2.下拉框和label添加图片

image.png

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. #include <QMovie>
  4. Widget::Widget(QWidget *parent) :
  5. QWidget(parent),
  6. ui(new Ui::Widget)
  7. {
  8. ui->setupUi(this);
  9. //设置下拉框
  10. ui->comboBox->addItem("奔驰");
  11. ui->comboBox->addItem("宝马");
  12. ui->comboBox->addItem("拖拉机");
  13. //按钮选中
  14. connect(ui->pushButton, &QPushButton::clicked, [=](){
  15. // ui->comboBox->setCurrentIndex(2);
  16. ui->comboBox->setCurrentText("拖拉机");
  17. });
  18. //label设置图片
  19. // ui->lable_pic->setPixmap(QPixmap(":/Image/butterfly.png")); //设置图片
  20. //label设置动图
  21. QMovie *mov = new QMovie(":/Image/mario.gif");
  22. ui->lable_pic->setMovie(mov);
  23. mov->start();
  24. }
  25. Widget::~Widget()
  26. {
  27. delete ui;
  28. }