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

网站后台有显示前台没有杭州seo平台

网站后台有显示前台没有,杭州seo平台,湖南建设厅官网平台,wordpress博客一直发布失败1. QString 字符串类 QString是Qt中的字符串类,与C/C不同的是,不再使用ASCII编码,而使用Unicode编码。因此一个字符不是8位的char,而是16位的QChar,这就是为什么之前一个汉字占用一个字符的原因。、 QString几乎向前兼…

1. QString 字符串类

QString是Qt中的字符串类,与C/C++不同的是,不再使用ASCII编码,而使用Unicode编码。因此一个字符不是8位的char,而是16位的QChar,这就是为什么之前一个汉字占用一个字符的原因。、
QString几乎向前兼容所有std::string的API。
部分常用函数如下:

// 数字 → QString
// 参数1:要转换的数字
// 参数2:进制
// 返回值:转换后的字符串
QString QString::number(long n, int base = 10) [static]
// 数字 → QString
// 参数1:要转换的数字
// 参数2:进制
// 返回值:转换后的字符串,支持链式调用
QString & QString::setNum(int n, int base = 10)
// QString → 数字
// 参数1:转换是否成功
// 参数2:进制
// 返回值:转换的结果,如果转换失败为0
int QString::toInt(bool * ok = 0, int base = 10) const

image.png

#include "dialog.h"Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{// UnicodeQString text = "你好あいうㅙㅖабв";// 遍历for(int i=0;i<text.count();i++){// at效率更高,[]可以作为左值qDebug() << text.at(i);}int a = 1;// 数字 → QStringtext = QString::number(a);qDebug() << text;a = 63;QString s = QString::number(a, 16);             // s == "3f"QString t = QString::number(a, 16).toUpper();     // t == "3F"// 数字 → QStringtext.setNum(a).append("fklsdh");qDebug() << text;// QString → 数字// 函数名称:to数据类型text = "0";bool result;a = text.toInt(&result,10);qDebug() << a;qDebug() << result;
}Dialog::~Dialog()
{}

2. 容器类

Qt基于C++的容器,重新提供了更轻巧、更安全和更易于使用的新容器类。这些新的容器类可以使程序最终的可执行文件体积减小,同时这些容器类可以被多个线程直接读取,也兼容C++绝大多数API。

2.1 QList类

本例不光讲解容器类的使用,同时增加自定义C++类的代码。
创建一个C++类的操作步骤如下:
1. 在Qt Creator中选中项目名称,鼠标右键,点击“添加新文件”。
2. 在弹出的窗口中,按照下图所示进行操作。
image.png
3. 在弹出的窗口中输入类名后点击“下一步”。image.png
4. 在项目管理界面,直接点击完成。
Qt的容器类都增加了Java风格迭代器,与C++的STL风格相比,只有语法上的不同。对应关系如下:

C++ STL 风格Java风格
QList::const_iteratorQListIterator
QList::iteratorQMutableListIterator
#ifndef STUDENT_H
#define STUDENT_H#include <QString>class Student
{
public:Student(QString,int,QString);QString getName() const;void setName(const QString &value);int getAge() const;void setAge(int value);QString getMajor() const;void setMajor(const QString &value);private:QString name;int age;QString major; // 专业
};#endif // STUDENT_H
#include "student.h"Student::Student(QString name,int age,QString major):name(name)
{this->age = age;this->major = major;
}QString Student::getName() const
{return name;
}void Student::setName(const QString &value)
{name = value;
}int Student::getAge() const
{return age;
}void Student::setAge(int value)
{age = value;
}QString Student::getMajor() const
{return major;
}void Student::setMajor(const QString &value)
{major = value;
}
#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <QDebug>
#include <QList>
// 引入学生类
#include "student.h"class Dialog : public QDialog
{Q_OBJECTpublic:Dialog(QWidget *parent = 0);~Dialog();
};#endif // DIALOG_H
#include "dialog.h"Dialog::Dialog(QWidget *parent): QDialog(parent)
{QList<Student> class23061;Student s1("李新宇",33,"光电");Student s2("贾洪瑞",18,"电子");Student s3("谢德政",22,"畜牧");Student s4("陈凯",62,"光电");Student s5("王俊杰",63,"通信");Student s6("何凯",67,"保安");// 增class23061.append(s1);class23061 << s2  << s4 << s5;class23061.prepend(s6); // 前插class23061.insert(1,s3); // 在第二个位置插入s3// 删class23061.removeAt(2); // 删除第三个
//    class23061.removeAll(s4); // 删除所有相同元素class23061.removeFirst(); // 删除第一个class23061.removeLast(); // 删除最后一个
//    class23061.removeOne(s4); // 删除相同元素的第一个// 改class23061.replace(1,s6); // 把第二个元素替换为s6// 遍历for(int i=0;i<class23061.size();i++){Student s = class23061.at(i);qDebug() << s.getName() << s.getAge() << s.getMajor();}// Java迭代器QListIterator<Student> iter(class23061); // 创建迭代器对象while(iter.hasNext()) // 后续有无元素{Student s = iter.next(); // 移动迭代器且取出元素qDebug() << s.getName() << s.getAge() << s.getMajor();}
}Dialog::~Dialog()
{}

2.2 QMap类

QMap也拥有Java风格迭代器:

C++ STL 风格Java风格
QMap<K,V>::const_iteratorQMapIterator<K,V>
QMap<K,V>::iteratorQMutableMapIterator<K,V>

dialog.cpp

#include "dialog.h"Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{QMap<QString,int> map;// 增加map.insert("月薪",10000);map.insert("年龄",20);map.insert("身高",199);map.insert("体重",100);// 移除// 返回值表示移除的键值对数量map.remove("体重");// 判断某个键在不在if(map.contains("身高"))qDebug() << "包含身高键";elseqDebug() << "不包含身高键";// 修改map["身高"] = 188;// 取出int result = map.value("月薪",-1);qDebug() << result;// Java风格迭代器QMutableMapIterator<QString,int> iter(map);while(iter.hasNext()){iter.next(); // 向后移动QString k = iter.key();int v = iter.value();qDebug() << k << v;}qDebug() << map;
}Dialog::~Dialog()
{}

3. Qt数据类型

3.1 跨平台类型

Qt是一种跨平台的开发框架,需要保证常见的基本数据类型在各平台具有统一的长度,Qt因此为了这些数据类型定义了类型符号。

Qt 数据类型等效定义字节数
qint8signed char1
qint16signed short2
qint32signed int4
qint64long long int8
qlonglonglong long int8
quint8unsigned char1
quint16unsigned short2
quint32unsigned int4
quint64unsigned long long int8
qulonglongunsigned long long int8
ucharunsigned char1
ushortunsigned short2
uintunsigned int4
ulongunsigned long8
qrealdouble8
qfloat16
2

3.2 统一数据类型 QVariant

QVariant 类是Qt常见数据类型的统一类型,可以完成与常见类型的相互转换。
后续有一些函数的参数或返回值使用此类型,因此可以支持很多类型的匹配。

QVariant value(3.14);
QString text = value.toString(); // “3.14”
qDebug() << text;

3.3 QStringList字符串列表

QStringList是一个字符串列表,几乎等同于QList。

4. 时间与日期处理(熟悉)

在Qt中使用QDate类处理日期,使用QTime类处理时间,使用QDateTime类同时处理日期和时间。
QDateTime类常用功能有:

// 返回1970-1-1 00:00:00到到现在的毫秒数(基于格林威治时间)
qint64 QDateTime::currentMSecsSinceEpoch() [static]

以下是一个生成随机数的例子:

qint64 time = QDateTime::currentMSecsSinceEpoch();
qDebug() << time;
// 把time作为种子
qsrand(time);
// 生成 1-45 随机数
int rand = qrand()%45+1;
qDebug() << rand;
以下是一个时间戳的例子:
qint64 time = QDateTime::currentMSecsSinceEpoch();
ui->setupUi(this);
qDebug() << QDateTime::currentMSecsSinceEpoch() - time;
// 基于当前时区,从系统中返回一个包含当前日期和时间的QDatetime对象
QDateTime QDateTime::currentDateTime() [static]
// 把QDateTime中的数据转换为固定格式的字符串
// 参数为格式
QString QDateTime::toString(const QString & format) const

image.png
以下是一个格式化日期和时间的例子:

// 拿到QDateTime对象,包含当前数据QDateTime dt = QDateTime::currentDateTime();// 转换为固定格式QString text = dt.toString("yyyy-MM-dd hh:mm:ss");qDebug() << text; // "2023-10-20 16:00:44"text = dt.toString("yyyy年MM月dd日");qDebug() << text; // "2023年10月20日"

相关组件:
image.png

5. QTimer定时器类(掌握)

QTimer是定时器类,用于设定一个倒计时或者周期性触发的效果。
QTimer的常用属性有:
● interval : int
如果是一次性的定时器,此属性表示倒计时时间;如果是周期性的定时器,此属性表示间隔时间。单位毫秒
● singleShot : bool
表示是否是一次性
● active : const bool
表示当前定时器是否正在运行

QTimer常用函数如下:

// 启动定时器,如果定时器已经在运行,调用此函数会停止定时器运行并重新运行
void QTimer::start() [slot]
// 停止定时器
void QTimer::stop() [slot]
// 定时器每次触发时发射的信号
void QTimer::timeout() [signal]

例子:电子表
–来自百度网盘超级会员V6的分享
QLcdNumber组件使用:

// 给QLcdNumber设置字符串内容
ui->lcdNumber->display("11:23:23");

注意定时器对象要设置为堆内存,不归ui指针管
对应代码👇:
dialog.h

#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <QTimer> // 定时器
#include <QDateTime>namespace Ui {
class Dialog;
}class Dialog : public QDialog
{Q_OBJECTpublic:explicit Dialog(QWidget *parent = 0);~Dialog();private:Ui::Dialog *ui;QTimer* timer; // 定时器对象private slots:// 定时器触发的槽函数void timeoutSlot();};
#endif // DIALOG_H

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog)
{ui->setupUi(this); // 0// 手动调用槽函数刷新时间// timeoutSlot(); // 解决刚刚运行时显示0的问题timer = new QTimer(this); // 创建定时器对象timer->setSingleShot(false); // 设置为周期性timer->setInterval(1000); // 设置间隔时间1000msconnect(timer,SIGNAL(timeout()),this,SLOT(timeoutSlot()));timer->start(); // 启动定时器
}
Dialog::~Dialog()
{delete ui;
}
void Dialog::timeoutSlot()
{// 获得当前时间QDateTime dt = QDateTime::currentDateTime();// 格式化QString text = dt.toString("hh:mm:ss");// 设置显示ui->lcdNumber->display(text);
}
http://www.15wanjia.com/news/170029.html

相关文章:

  • 网站建设优化推广教程计算机软件开发培训
  • 网站注册凡科在线教育网站制作
  • 潮汕学院网站开发怎样做网络推广给我 你所有地方都上手
  • 东莞万江网站制作江苏省建设信息网官网
  • 德州市建设小学网站腾讯云域名续费
  • 淘宝做海淘产品 网站折扣变化快wordpress 蜘蛛
  • 做网站沧州仿站小工具+wordpress
  • 太原顶呱呱做网站地址电话外链发布平台大全
  • 网站后台管理系统 aspwordpress仿唯品会
  • 推广网站弄哪家好wordpress登陆可见
  • 插件素材网站做网站被罚款
  • 信息图表设计网站电子商务平台管理
  • 智慧团建注册入口做seo推广一年大概的费用
  • 网站备案跟域名有什么关系论坛类网站备案吗
  • 广东省住房和城乡建设厅网站企业网站建设 百度文库
  • html5网站开发公司有哪些网站能免费建站
  • 企业网站推广方案范文正规培训机构有哪些
  • 如何在图片上添加文字做网站网红网站建设官网
  • 去别人网站挂黑链西安个人网站建设
  • 金华建设网站综合门户网站源码
  • 品牌网站建设gs鼎城网站建设
  • 东莞横沥网站制作公司网站制作多少钱
  • 校园网站制作方法如何看网站的ftp
  • 义乌哪里有学做网站的余姚网
  • 怎么用一个主机做多个网站好订单网服装加工接单
  • 网站开发公司照片服装公司网站策划书
  • 提供企业网站建设价格妇科医院网站建设
  • 高科技公司网站模板公司部门有哪些
  • 深圳网站建设联雅谷歌推广电话
  • 企业网站模板下载定西营销型网站建设