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

server/2025/1/17 20:05:16/

文章目录

  • 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/server/159173.html

相关文章

Word中如何格式化与网页和 HTML 内容相关的元素

在 Microsoft Word 中&#xff0c;HTML变量、HTML打字机、HTML地址、HTML定义、HTML键盘、HTML缩写、HTML样本、HTML引文 等样式是针对在文档中处理与 HTML 相关内容时&#xff0c;方便格式化特定类型的文本元素。以下是每个样式的详细说明及其使用场景&#xff1a; 1. HTML 变…

C# 中对 Task 中的异常进行捕获

以下是在 C# 中对 Task 中的异常进行捕获的几种常见方法&#xff1a; 方法一&#xff1a;使用 try-catch 语句 你可以使用 try-catch 语句来捕获 Task 中的异常&#xff0c;尤其是当你使用 await 关键字等待任务完成时。 using System; using System.Threading.Tasks;class …

设计微服务的过程

原文&#xff1a; https://microservices.io/post/architecture/2023/02/09/assemblage-architecture-definition-process.html 文章目录 Overview of AssemblageStep 1: Discovering system operationsStep 2: Defining subdomainsStep 3: Designing services and their colla…

JavaEE之常见的锁策略

前面我们学习过线程不安全问题&#xff0c;我们通过给代码加锁来解决线程不安全问题&#xff0c;在生活中我们也知道有很多种类型的锁&#xff0c;同时在代码的世界当中&#xff0c;也对应着很多类型的锁&#xff0c;今天我们对锁一探究竟&#xff01; 1. 常见的锁策略 注意: …

【Linux】12.Linux进程概念(1)

文章目录 1. 冯诺依曼体系结构2. 操作系统(Operator System)概念设计OS的目的胆小的操作系统定位如何理解 "管理"总结 3. 进程基本概念task_struct-PCB的一种task_ struct内容分类组织进程查看进程通过系统调用获取进程标示符通过系统调用创建进程-fork初识 1. 冯诺依…

探秘 JMeter (Interleave Controller)交错控制器:解锁性能测试的隐藏密码

嘿&#xff0c;小伙伴们&#xff01;今天咱们要把 JMeter 里超厉害的 Interleave Controller&#xff08;交错控制器&#xff09;研究个透&#xff0c;让你从新手直接进阶成高手&#xff0c;轻松拿捏各种性能测试难题&#xff01; 一、Interleave Controller 深度剖析 所属家族…

四阶龙格库塔法求解二元二阶常微分方程

龙格库塔法&#xff08;Runge-Kutta methods&#xff09;是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。在工程领域应用广泛&#xff0c;可用于求解复杂系统的运动方程等问题。 这里采用matlab程序编写代码实现龙格库塔法对于二元二阶常微分方程的求解。 例 { x …

数据分析-使用Excel透视图/表分析禅道数据

背景 禅道&#xff0c;是目前国内用得比较多的研发项目管理系统&#xff0c;我们常常会用它进行需求管理&#xff0c;缺陷跟踪&#xff0c;甚至软件全流程的管理&#xff0c;如果能将平台上的数据结公司的实际情况进行合理的分析利用&#xff0c;相信会给我们的项目复盘总结带来…