欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Qt 5.14.2 学习记录 —— 십삼 QComboBox、QSpinBox、QDateTimeEdit、QDial、QSlider

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

2025/2/24 23:09:02 来源:https://blog.csdn.net/kongqizyd146/article/details/145136041  浏览:    关键词:Qt 5.14.2 学习记录 —— 십삼 QComboBox、QSpinBox、QDateTimeEdit、QDial、QSlider

文章目录

  • 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);
}

结束。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词