5-时间、日期与组合框

时间、日期与组合框

  • 1 日期时间
    • 1.1 日期时间相关的类
    • 1.2 日期、时间和字符串的转换
    • 1.3 例子
  • 2、组合框
    • 2.1 QComboBox
    • 2.2 QPlainTextEdit
    • 2.3 案例
  • 3、自定义右键菜单

1 日期时间

1.1 日期时间相关的类

  • QTime
    • 时间数据类型,仅表示时间,如:15:23:20
  • QDate类
    • 日期数据类型,仅表示日期,如:2025-05-25
  • QDateTime
    • 日期时间数据类型,表示日期和时间,如:2025-05-25 15:23:20

1.2 日期、时间和字符串的转换

  • 日期时间类型转换成字符串
    • QString toString(const QString &format)const
  • 字符串转换成日期时间
    • QTimeQTime::fromString(const QString &string,const QString &format)
    • QDate QDate::fromString(const QString &string,const QString &format)
    • QDateTime QDateTime::fromString(const QString &string,const QString &format)
  • 转换的日期格式和时间格式
格式符号含义
d
dd
没有前导零的日期(131)<br>有前导零的日期(0131)
ddd
dddd
本地日期名缩写(如:MonSun)<br>本地日期名(如:MondaySunday)
M
MM
没有前导零的月份(112)<br>有前导零的月份(0112)
MMM
MMMM
本地月份名称缩写(如:JanDec)<br>本地月份名称(如:JanuaryDecember)
yy
yyyy
两位数字的年份(00~99)
四位数字的年份
h
hh
H
HH
没有前导零的小时(0to23or1to12ifAM/PM display)
有前导零的小时(00to23or01to12ifAM/PM display)
没有前导零的小时(Oto23,even with AM/PM display)
有前导零的小时(0to23,even with AM/PM display)
m
mm
没有前导零的分钟(059)<br>有前导零的分钟(0059)
s
ss
没有前导零的秒(059)<br>有前导零的秒(0059)
Z
ZZZ
没有尾随零的毫秒(0999)<br>有尾随零的毫秒(000999)
AP or A
ap or a
显示AM/PM(大写)
显示am/pm(小写)

1.3 例子

int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 序列化QDateTime dateTime= QDateTime::currentDateTime();QString str = dateTime.toString("yyyy:MM:dd h:m:s");qDebug()<<str;// 反序列化// date() - 解析得到日期// time() - 解析得到时间str = "2024.05.25 10:05:30";dateTime = QDateTime::fromString(str,"yyyy.MM.dd HH:mm:ss");qDebug()<<dateTime.date().year();qDebug()<<dateTime.date().month();qDebug()<<dateTime.date().day();qDebug()<<dateTime.time().hour();qDebug()<<dateTime.time().minute();qDebug()<<dateTime.time().second();return a.exec();
}

2、组合框

2.1 QComboBox

  • 下拉列表框控件类
  • 提供一个下拉列表共用户选择,也可以直接当作一个QLineEdit用作输入,每个项(item,或称列表项)可以关联一个QVariant类型的变量,用于存储一些不可见数据。
  • 常用函数
void addItem(const QString &text,const QVariant &userData = QVariant())
void addItem(const QIcon &icon,const QString &text,const QVariant &userData = QVariant())
  • 访问
int currentIndex():返回当前项的序号,从0开始
QString currentText():返回当前项的文字
QVariant currentData(int role=Qt::UserRole):返回当前项的关联数据
QString itemText(int index):返回指定索引号的项的文字
QVariant itemData(int index,int role=Qt::UserRole):返回指定索引号的项的关联数据
int count():返回项的个数
  • 信号
void currentIndexChanged(int index)
void currentIndexChanged(const QString &text)

2.2 QPlainTextEdit

  • 编辑多行文本的编辑框,可以编辑普通文本
  • QPlainTextEdit提供cut()、copy()、paste()、undo()、redo()、clear()、selectAll()等标准功能的槽函数,QPlainTextEdit还提供一个标准的右键快捷菜单
  • QPlainTextEdit常用函数
QPlainTextEdit::appendPlainText(const QString &text)// 添加项字符串
QString QPlainTextEdit::toPlainText() const // 读取所有文字
/* 逐行读取需要使用QTextDocument */
QTextDocument *QPlainTextEdit::document() const
int QTextDocument ::blockCount()
QTextBlock QTextDocument::findBlockByNumber(int blockNumber)

2.3 案例

实现下面的功能
在这里插入图片描述

1:构建ui
在这里插入图片描述

2:实现的功能

/* 简单组合框 */
// 初始化
void ComboboxDialog::on_m_btnInit_clicked()
{ui->m_comboSimple->addItem("无图标选项");ui->m_comboSimple->addItem(QIcon(":/images/aim.ico"),"有图标的选项");
}
// 清空
void ComboboxDialog::on_m_btnClear_clicked()
{ui->m_comboSimple->clear();//将组合框清空
}
// 可编辑
void ComboboxDialog::on_m_checkEditable_clicked(bool checked)
{ui->m_comboSimple->setEnabled(checked);
}
// combox
void ComboboxDialog::on_m_comboSimple_currentIndexChanged(const QString &arg1)
{if(!arg1.isEmpty()){ui->m_plainTextEdit->appendPlainText(arg1);}
}
/* 用户数据组合框 */
// 添加
void ComboboxDialog::on_m_btnAdd_clicked()
{QMap<QString,int>cityZone;cityZone["北京"]=10;cityZone["上海"]=11;cityZone["南京"]=13;for (QMap<QString,int>::iterator it=cityZone.begin();it!=cityZone.end();it++) {ui->m_comboUserData->addItem(it.key(),it.value());}
}
// combox
void ComboboxDialog::on_m_comboUserData_currentIndexChanged(const QString &arg1)
{if(!arg1.isEmpty()){QVariant zone = ui->m_comboUserData->currentData();ui->m_plainTextEdit->appendPlainText(arg1+"的区号是:"+zone.toString());}
}
/* 编辑组合框 */// 追加
void ComboboxDialog::on_m_btnAppend_clicked()
{// 获取当前文本对象信息// 后序可以从该对象指针中获取文本对应的属性QTextDocument* qc = ui->m_plainTextEdit->document();int blockCount= qc->blockCount();for(int i=0;i<blockCount;i++){// 获取第i行的文本块ui->m_comboSimple->addItem(qc->findBlockByNumber(i).text());}
}
// 擦除
void ComboboxDialog::on_m_btnErase_clicked()
{ui->m_plainTextEdit->clear();
}
// 只读
void ComboboxDialog::on_m_checkReadOnly_clicked(bool checked)
{ui->m_plainTextEdit->setReadOnly(checked);
}

3、自定义右键菜单

  • contextMenuPolicy属性
    • Qt::DefaultContextMenu
    • Qt::CustomContextMenu
  • 信号
    • void customContextMenuRequested(const QPoint &pos)
  • 添加自定义右键菜单的步骤
    • contextMenuPolicy :Qt::CustomContextMenu
    • 处理信号customContextMenuRequested(const QPoint &pos)
    • 在槽函数中:
      1> 创建菜单:QMenu* menu = new QMunu;
      2> 添加菜单项:void addAction(QAction* action)
      3> 显示菜单:QAction* exec(const QPoint &p)
// 右键菜单
void ContexMenuDialog::on_ContexMenuDialog_customContextMenuRequested(const QPoint &pos)
{Q_UNUSED(pos);// 创建菜单QMenu* menu = new QMenu;// 添加菜单项menu->addAction(ui->m_actAbout);menu->addSeparator();// 添加分隔符menu->addAction(ui->m_actExit);// 显示菜单menu->exec(QCursor::pos());delete menu;// 自己new出来的对象,需要释放掉
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/18294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构与算法 经典例题】返回单链表的倒数第 k 个节点

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;数据结构与算法刷题系列&#xff08;C语言&#xff09; 期待您的关注 目录 一、问题描述 二、解题思路 方法一:计数器方式 方法…

Aleth-NeRF: Illumination Adaptive NeRF with Concealing Field Assumption

Abstract Aleth-NeRF: 带有隐蔽场假设的照明自适应 NeRF 照明照明标准的神经辐射场(NeRF)范例采用了一种以观察者为中心的方法,将光照和材料反射的各个方面仅仅从3D 点发射纠缠在一起。这种简化的渲染方法在准确建模在不利光照条件下捕获的图像方面提出了挑战,如弱光或过度曝…

npm install node-sass 安装失败的解决方案:利用国内镜像加速安装

在开发前端项目时&#xff0c;使用Sass作为CSS预处理器是很多开发者的选择。然而&#xff0c;在通过npm安装其Node.js绑定库node-sass时&#xff0c;一些开发者可能会遇到安装失败的问题&#xff0c;尤其是网络原因导致的下载缓慢或中断。本文将指导你如何通过更换为国内镜像源…

The 2022 ICPC Asia Nanjing Regional Contest - External G

题目链接:Problem - D - Codeforces 写在前面&#xff1a;今天的训练赛打的稀碎&#xff0c;一道稍微难一点的签到题就把我难住了&#xff0c;看完题解确实感觉不难&#xff0c;看来题目还是刷太少了。 回归正题 题意&#xff1a; 思路&#xff1a;尽量让分子大&#xff0c;分…

【NumPy】深入了解NumPy的multiply函数:高效矩阵和数组乘法指南

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

HNU-人工智能-作业3

人工智能-作业3 计科210X 甘晴void 202108010XXX 1.贝叶斯网络 根据图所给出的贝叶斯网络&#xff0c;其中&#xff1a;P(A)0.5&#xff0c;P(B|A)1&#xff0c; P(B|A)0.5&#xff0c; P(C|A)1&#xff0c; P(C|A)0.5&#xff0c;P(D|BC)1&#xff0c;P(D|B, C)0.5&#xff…

循环buffer“一写多读“

1.往期回顾 一个简单实用的循环buffer&#xff0c;用于缓冲数据&#xff01;测试500M数据&#xff0c;耗时1.3秒。 C语言版本的循环buffer比C版本的速度更快&#xff01;测试500M数据0.5秒&#xff0c;达9.25Gbps左右&#xff01; C 语言免拷贝版本循环 buffer 比拷贝版本快了…

Golang并发编程-协程goroutine的信道(channel)

文章目录 前言一、信道的定义与使用信道的声明信道的使用二、信道的容量与长度三、缓冲信道与无缓冲信道缓冲信道无缓冲信道四、信道的初体验信道关闭的广播机制总结前言 Goroutine的开发,当遇到生产者消费者场景的时候,离不开 channel(信道)的使用。 信道,就是一个管道,…

Redis介绍及安装配置

1 什么是Redis Redis 的定义&#xff1a;Redis&#xff08;Remote Dictionary Server 远程字典服务&#xff09;是一个开源的使用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 可见Redis和我们最经常使用的MySQL都…

技术创新加速生态繁荣 | 软通动力子公司鸿湖万联亮相OpenHarmony开发者大会2024

5月25日&#xff0c;由开放原子开源基金会OpenHarmony项目群工作委员会主办的OpenHarmony开发者大会2024在深圳成功举行。本次大会紧扣OpenHarmony 4.1 Release版本发布契机&#xff0c;以“鸿心聚力&#xff0c;智引未来”为主题、通过“1场主论坛6场技术分论坛”承载&#xf…

mysql 8 [HY000][1114] The table ‘/tmp/#sql4c3_3e5a0_2‘ is full

分组有个比较大的表&#xff0c;出现了临时表空间满了的情况&#xff1b; 试用该sql 语句&#xff1a; SHOW GLOBAL VARIABLES LIKE internal_tmp_mem_storage_engine; 可以看到 默认临时结果是用临时表存的&#xff0c;在mysql的my.cnt可以改临时空间的大小 但是磁盘哪有内…

5.28学习总结

java复习总结 hashcode()和equals() hashcode():在Object里这个方法是通过返回地址的整数值来生成哈希值。 equals():在Object里这个方法是通过比较他们的内存地址来确定两个对象是否相同。 运行效率&#xff1a;hashcode的时间复杂度为O(1)&#xff08;因为只要计算一次哈…

Vue 菜单组件开发教程

在 Vue 项目中&#xff0c;我们常常需要构建各种菜单结构。下面就来详细介绍如何基于给定的代码来开发一个菜单组件。 组件部分 一、模板部分 <template> <template v-for"item in menuTree" :key"item._id"> <el-sub-menu v-if"i…

EtherCAT协议概述

EtherCAT 是由德国 BECKOFF 自动化公司于2003年提出的实时工业以太网技术。它具有高速和高数据有效率的特点&#xff0c;支持多种设备连接拓扑结构。其从站节点使用专用的控制芯片&#xff0c;主站使用标准的以太网控制器。 EtherCAT 的主要特点如下 : ①泛的适用性&#xff0c…

【Pandas】深入解析`pd.read_sql()`函数

【Pandas】深入解析pd.read_sql()函数 &#x1f308; 欢迎莅临我的个人主页&#x1f448;这里是我深耕Python编程、机器学习和自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;并乐于分享知识与经验的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xf…

《KAN》论文笔记

原文出处 KAN: Kolmogorov–Arnold Networks (arxiv.org)https://arxiv.org/html/2404.19756v1 论文笔记 What 《KAN: Kolmogorov–Arnold Networks》——我们提出了 KolmogorovArnold Networks (KANs) 作为多层感知器 (MLP) 的有前途的替代方案。 我们表明&#xff0c;这…

STM32简易音乐播放器(HAL库)

一、设计描述 本设计以STM32MP157A单片机为核心控制器&#xff0c;加上其他的模块一起组成基于单片机的音乐盒的整个系统&#xff0c;通过不同频率的PWM使蜂鸣器播放音乐&#xff0c;通过按键中断实现歌曲切换&#xff0c;音量调节&#xff0c;定时器中断实现播放速度调节&…

kafka-生产者发送消息消费者消费消息

文章目录 1、生产者发送消息&消费者消费消息1.1、获取 kafka-console-producer.sh 的帮助信息1.2、生产者发送消息到某个主题1.3、消费主题数据 1、生产者发送消息&消费者消费消息 1.1、获取 kafka-console-producer.sh 的帮助信息 [rootlocalhost ~]# kafka-console…

Xunsearch:实现拼音搜索和中文分词功能

首先我们需要安装xunsearch扩展库&#xff0c;参考 1、设置分词器和拼音搜索功能 在创建Xunsearch对象后&#xff0c;可以设置相应的分词器和拼音搜索功能。以下代码示例演示了如何设置分词器和拼音搜索功能&#xff1a; $index $xunsearch->index; $index->setToken…

解决SSH客户端远程连接CentOS7虚拟机时加载过慢问题

1、编辑 /etc/ssh/sshd_config 文件&#xff0c;将 useDNS 中的 yes 改为 no &#xff0c;关闭UseDNS加速&#xff1a; vi /etc/ssh/sshd_config2、重启ssh服务: systemctl restart sshd