Qt 5.14.2 学习记录 —— 십삼 QComboBox、QSpinBox、QDateTimeEdit、QDial、QSlider

embedded/2025/1/21 4:59:34/

文章目录

  • 1、QComboBox
  • 2、QSpinBox
  • 3、QDateTimeEdit
  • 4、QDial
  • 5、QSlider


1、QComboBox

下拉框

在这里插入图片描述
在这里插入图片描述

信号

在这里插入图片描述

写程序来查看各个功能

在这里插入图片描述

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->comboBox->addItem("麦辣鸡腿堡");ui->comboBox->addItem("巨无霸");ui->comboBox->addItem("培根蔬萃双层牛堡");ui->comboBox_2->addItem("薯条");ui->comboBox_2->addItem("麦乐鸡块");ui->comboBox_2->addItem("麦辣鸡翅");ui->comboBox_3->addItem("可乐");ui->comboBox_3->addItem("雪碧");
}void Widget::on_pushButton_clicked()
{qDebug() << ui->comboBox->currentText() << ", " << ui->comboBox_2->currentText() << ", " << ui->comboBox_3->currentText();
}

右击下拉框,编辑项目也可以添加内容。

另一个例子,通过文件/网络来添加下拉框内容

在这里插入图片描述

#include <QDebug>
#include <fstream>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);std::ifstream file("E:/test.txt");if (!file.is_open()){qDebug() << "文件打开失败";return ;}std::string line;while (std::getline(file, line)){// 括号中把std::string 改为 QString// QString 改为 std::string 是 .toStdString()ui->comboBox->addItem(QString::fromStdString(line));}file.close();
}

2、QSpinBox

带有按钮的输入框,微调框。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5c9560d549594a12b801829e81986137.png)
在这里插入图片描述

在这里插入图片描述

#include <QDebug>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->comboBox->addItem("麦辣鸡腿堡");ui->comboBox->addItem("巨无霸");ui->comboBox->addItem("培根蔬萃双层牛堡");ui->comboBox_2->addItem("薯条");ui->comboBox_2->addItem("麦乐鸡块");ui->comboBox_2->addItem("麦辣鸡翅");ui->comboBox_3->addItem("可乐");ui->comboBox_3->addItem("雪碧");// 限制一下可选的量ui->spinBox->setRange(1, 5);ui->spinBox_2->setRange(1, 5);ui->spinBox_3->setRange(1, 5);ui->spinBox->setValue(1);ui->spinBox_2->setValue(1);ui->spinBox_3->setValue(1);
}void Widget::on_pushButton_clicked()
{qDebug() << "当前订单: "<< ui->comboBox->currentText() << ": " << ui->spinBox->value()<< ui->comboBox_2->currentText() << ": " << ui->spinBox_2->value()<< ui->comboBox_3->currentText() << ": " << ui->spinBox_3->value();
}

3、QDateTimeEdit

在这里插入图片描述
在这里插入图片描述

写一个时间计算器

在这里插入图片描述

void Widget::on_pushButton_clicked()
{QDateTime timeOld = ui->dateTimeEdit->dateTime();QDateTime timeNew = ui->dateTimeEdit_2->dateTime();// QDateTime中, daysTo计算两个时间的日期的差值, secsTo计算两个时间的秒数的差值int days = timeOld.daysTo(timeNew);int seconds = timeOld.secsTo(timeNew);int hours = (seconds / 3600) % 24; // 秒转为小时ui->label->setText(QString("相差 ") + QString::number(days) + QString(" 天 ") + QString::number(hours) + QString(" 小时"));
}

也可以自己计算天数

void Widget::on_pushButton_clicked()
{QDateTime timeO ld = ui->dateTimeEdit->dateTime();QDateTime timeNew = ui->dateTimeEdit_2->dateTime();// QDateTime中, daysTo计算两个时间的日期的差值, secsTo计算两个时间的秒数的差值//int days = timeOld.daysTo(timeNew);int seconds = timeOld.secsTo(timeNew);int days = (seconds / 3600) / 24;int hours = (seconds / 3600) % 24; // 秒转为小时ui->label->setText(QString("相差 ") + QString::number(days) + QString(" 天 ") + QString::number(hours) + QString(" 小时"));
}

4、QDial

表示旋钮

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过旋钮控制窗口的不透明度

void Widget::on_dial_valueChanged(int value)
{// 1完全不透明, 0完全透明, 是一个小数this->setWindowOpacity((double)value / 100);
}

5、QSlider

滑动条

在这里插入图片描述
在这里插入图片描述

信号

在这里插入图片描述

写一个水平,一个垂直进度条,用方向键可以控制。

在这里插入图片描述

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->horizontalSlider->setMinimum(100);ui->horizontalSlider->setMaximum(2100);ui->horizontalSlider->setValue(400);ui->horizontalSlider->setSingleStep(50);ui->verticalSlider->setMinimum(100);ui->verticalSlider->setMaximum(2100);ui->verticalSlider->setValue(700);ui->verticalSlider->setSingleStep(50);
}void Widget::on_horizontalSlider_valueChanged(int value)
{const QRect& rect = this->geometry();this->setGeometry(rect.x(), rect.y(), value, rect.height());
}void Widget::on_verticalSlider_valueChanged(int value)
{const QRect& rect = this->geometry();this->setGeometry(rect.x(), rect.y(), rect.width(), value);
}

用快捷键来操作滑动条

# include <QShortCut>QShortcut* shortCut1 = new QShortcut(this);shortCut1->setKey(QKeySequence("-"));QShortcut* shortCut2 = new QShortcut(this);shortCut2->setKey(QKeySequence("+"));connect(shortCut1, &QShortcut::activated, this, &Widget::subValue);connect(shortCut2, &QShortcut::activated, this, &Widget::addValue);void Widget::subValue()
{int value = ui->horizontalSlider->value();if (value <= ui->horizontalSlider->minimum())return;ui->horizontalSlider->setValue(value - 5);
}void Widget::addValue()
{int value = ui->horizontalSlider->value();if (value >= ui->horizontalSlider->maximum())return;ui->horizontalSlider->setValue(value + 5);
}

结束。


http://www.ppmy.cn/embedded/155681.html

相关文章

Golang笔记——常用库reflect和unsafe

大家好&#xff0c;这里是Good Note&#xff0c;关注 公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Go的常用库reflect和unsafe。 文章目录 reflect1. 反射的基本概念2. 主要类型reflect.Type 类型reflect.Value 类型 3. 获取类型和操作值获取类型…

JavaScript语言的正则表达式

JavaScript语言的正则表达式详解 正则表达式&#xff08;Regular Expression&#xff0c;简称Regex或RegExp&#xff09;是一种强大的文本处理工具&#xff0c;可以在字符串中执行模式匹配和替换操作。在JavaScript中&#xff0c;正则表达式是处理字符串时不可或缺的部分&…

搭建一个基于Spring Boot的驾校管理系统

搭建一个基于Spring Boot的驾校管理系统可以涵盖多个功能模块&#xff0c;例如学员管理、教练管理、课程管理、考试管理、车辆管理等。以下是一个简化的步骤指南&#xff0c;帮助你快速搭建一个基础的系统。 1. 项目初始化 使用 Spring Initializr 生成一个Spring Boot项目&am…

JDBCTemplate-模板设计模式和策略模式

策略模式是一种行为型设计模式&#xff0c;它允许将算法的实现封装在不同的策略类中&#xff0c;并在运行时根据需要动态选择合适的策略。策略模式的核心思想是将算法或行为抽象为接口&#xff0c;然后通过具体的策略类来实现这些行为。 模板方法模式&#xff08;Template Met…

内网渗透测试工具及渗透测试安全审计方法总结

1. 内网安全检查/渗透介绍 1.1 攻击思路 有2种思路&#xff1a; 攻击外网服务器&#xff0c;获取外网服务器的权限&#xff0c;接着利用入侵成功的外网服务器作为跳板&#xff0c;攻击内网其他服务器&#xff0c;最后获得敏感数据&#xff0c;并将数据传递到攻击者&#xff0…

以太网详解(五)GMII、RGMII、SGMII接口时序约束(Quartus 平台)

文章目录 接口时序Avalon Streaming 接口时序Receive TimingTransmit Timing GMII 接口时序Receive TimingTransmit Timing RGMII 接口时序Receive TimingTransmit Timing 如何创建 .sdc 约束文件三速以太网系统时钟信号创建 set_input_delay&#xff0c;set_output_delay 约束…

20250116联想笔记本电脑ThinkBook 16 G5+使用TF卡拷贝速度分析

20250116联想笔记本电脑ThinkBook 16 G5使用TF卡拷贝速度分析 2025/1/16 19:30 结论&#xff1a;看使用的环境&#xff0c;速度大概是22-50-80MBps。 根据你是直接接到电脑的读卡器&#xff0c;还是外置读卡器&#xff0c;以及USB2.0/USB3.0/type-C【USB3.1接口】对读写速度都有…

解决wordpress媒体文件无法被搜索的问题

最近,我在wordpress上遇到了一个令人困扰的问题:我再也无法在 WordPress 的媒体库中搜索媒体文件了。之前,搜索媒体非常方便,但现在无论是图片还是其他文件,似乎都无法通过名称搜索到。对于我这样需要频繁使用图片的博主来说,这简直是个大麻烦。 问题源头 一开始,我怀…