当前位置: 首页 > news >正文

【QT】控件8

1.QDial

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过调节旋钮位置来控制窗口的不透明度:

void Widget::on_dial_valueChanged(int value)
{qDebug()<<value;this->setWindowOpacity((double)value/100);
}

效果演示:

2.Date/Time Edit

计算两个日期的差值
ui界面设计
在这里插入图片描述
计算按钮按下,计算两个时间的差值,然后显示显示在label上

void Widget::on_pushButton_clicked()
{QDateTime timeold=ui->dateTimeEdit->dateTime();//获取第一个时间QDateTime timenew=ui->dateTimeEdit_2->dateTime();//获取第二个时间qDebug()<<timeold<<timenew;//打印两个时间int day=timeold.daysTo(timenew);//第一个时间到第二个时间的差了多少天int sec=timeold.secsTo(timenew);//第一个时间到第二个时间差了多少秒int hour=(sec/3600)%24;//差了多少秒,算出差了多少天,超出的为差了多少秒ui->label->setText(QString("你生存了")+QString::number(day)+QString("天零")+QString::number(hour));}

但是上述的有一个问题
在这里插入图片描述
上面正确的时间应该是7个小时,我们可以查看一下文档
在这里插入图片描述
这里说从一天的23:55到第二天的0:05也算一天,我们可以直接通过秒来计算出天数即可

void Widget::on_pushButton_clicked()
{QDateTime timeold=ui->dateTimeEdit->dateTime();//获取第一个时间QDateTime timenew=ui->dateTimeEdit_2->dateTime();//获取第二个时间qDebug()<<timeold<<timenew;//打印两个时间// int day=timeold.daysTo(timenew);//第一个时间到第二个时间的差了多少天int sec=timeold.secsTo(timenew);//第一个时间到第二个时间差了多少秒int hour=(sec/3600)%24;//差了多少秒,算出差了多少天,超出的为差了多少秒int day=(sec/3600)/24;//根据差的秒数来计算天数ui->label->setText(QString("你生存了")+QString::number(day)+QString("天零")+QString::number(hour)+QString("小时"));}

在这里插入图片描述

3.QSlider

实现水平/竖直方向的滑动条控制窗口大小
在这里插入图片描述

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->verticalSlider->setMaximum(1000);//设置水平最大对应多少像素ui->verticalSlider->setMinimum(200);//设置水平最小对应多少像素ui->verticalSlider->setSingleStep(50);//设置调整一次会调整多少像素ui->verticalSlider->setValue(600);//设置水平起始位置ui->horizontalSlider->setMaximum(1000);//设置竖直最大对应多少像素ui->horizontalSlider->setMinimum(200);//设置竖直最小对应多少像素ui->horizontalSlider->setSingleStep(50);//设置调整一次会调整多少像素ui->horizontalSlider->setValue(800);//设置竖直起始位置
}

使用valuechanged槽函数实现窗口的大小变化

void Widget::on_horizontalSlider_valueChanged(int value)
{QRect rect=this->geometry();//获取到当前数据this->setGeometry(rect.x(),rect.y(),value,rect.height());//通过value修改窗口水平值
}void Widget::on_verticalSlider_valueChanged(int value)
{QRect rect=this->geometry();//获取到当前数据this->setGeometry(rect.x(),rect.y(),rect.width(),value);//通过value修改窗口水平值
}

视频演示:

通过自定义按钮实现滑动条的移动

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->horizontalSlider->setMaximum(1000);ui->horizontalSlider->setMinimum(200);ui->horizontalSlider->setSingleStep(50);ui->horizontalSlider->setValue(600);QShortcut* cut1=new QShortcut(this);//定义一个快捷键对象实现--cut1->setKey(QKeySequence("-"));//设置某个快捷键QShortcut* cut2=new QShortcut(this);//定义另外的快捷键对象++cut2->setKey(QKeySequence("="));//设置某个快捷键connect(cut1,&QShortcut::activated,this,&Widget::deal1);//当--,对应滑动条值--connect(cut2,&QShortcut::activated,this,&Widget::deal2);//当++,对应滑动条值++}
void Widget::deal1()
{int value=ui->horizontalSlider->value();//获取滑动条的值ui->horizontalSlider->setValue(value-5);//重设滑动条的值ui->label->setText(QString::number(value-5));//显示在标签上·}void Widget::deal2()
{int value=ui->horizontalSlider->value();//获取滑动条的值ui->horizontalSlider->setValue(value+5);//重设滑动条的值ui->label->setText(QString::number(value+5));//显示在标签上·}

效果演示:

http://www.lryc.cn/news/493951.html

相关文章:

  • 漫谈推理谬误——错误因果
  • 【数据结构】队列实现剖析:掌握队列的底层实现
  • 【C++】IO库(二):文件输入输出
  • 105.【C语言】数据结构之二叉树求总节点和第K层节点的个数
  • 力扣637. 二叉树的层平均值
  • 【前端】Next.js 服务器端渲染(SSR)与客户端渲染(CSR)的最佳实践
  • 路径规划之启发式算法之一:A-Star(A*)算法
  • Android复习代码1-4章
  • 【问题】webdriver.Chrome()设置参数executable_path报不存在
  • win10系统安装docker-desktop
  • 小程序-基于java+SpringBoot+Vue的乡村研学旅行平台设计与实现
  • 组件A底部栏(position: fixed )事件使用$emit更新内容失败bug解决
  • 数据结构——排序第三幕(深究快排(非递归实现)、快排的优化、内省排序,排序总结)超详细!!!!
  • C++的类功能整合
  • 《String类》
  • 【docker】docker的起源与容器的由来、docker容器的隔离机制
  • Window 安装 Nginx
  • replace (regexp|substr, newSubstr|function)替换字符串中的指定部分
  • 【ROS2】Ubuntu22.04安装ROS humble
  • cesium 3Dtiles变量
  • 配置泛微e9后端开发环境
  • 【Stable Diffusion】安装教程
  • USB Type-C一线通扩展屏:多场景应用,重塑高效办公与极致娱乐体验
  • 【力扣】541.反转字符串2
  • 什么是防抖与节流
  • springboot vue 开源 会员收银系统 (12)购物车关联服务人员 订单计算提成
  • FFmpeg 推流给 FreeSWITCH
  • .npmrc文件的用途
  • C++游戏开发入门:如何从零开始实现自己的游戏项目?
  • Redis设计与实现第16章 -- Sentinel 总结1(初始化、主从服务器获取信息、发送信息、接收信息)