QT常用库、类、函数等

2023-05-16

文章目录

  • 常用基类
    • QObject类
      • 内存管理机制:父子对象的内存管理机制
    • QApplication类:应用程序类(一般不直接操纵)
    • QWidget类:窗体类
      • 容器控件QStackedWidget
  • Qt常用库
    • QtCore基本库
    • QtGui GUI库:包含图形窗口类
    • 网络和数据库相关类
      • QtNetwork: Qt网络库(QT进行网络编程时用的与网络相关的类)
      • QtSql:包含数据库编程相关类
  • QLineEdit
    • 密码模式
  • QSpinBox
    • 子部件
  • Dialog->setWindowFlags() 标题栏控制
  • 基本对话框
    • 类型
  • 标准对话框之 QMessageBox
  • 文件操作
    • QFile
  • Qfont类: 字体
  • QColor类
  • QMetaObject类
    • QMetaObject::connectSlotsByName(QObject *object)
  • QSplashScreen:程序启动画面
  • AES加密
  • QDesktopWidget
  • QTimer
  • QRubberBand橡皮筋类
  • QRect
  • 常用函数
    • 输出
    • 判断对象类型
      • T qobject_cast(QObject *object)
      • bool QObject::inherits(const char *className) const
    • 类型转换
    • 循环
      • foreach
    • 取Object对象的列表:children & findChildren
      • 将输入框设为不可编辑
    • 去除标题栏
    • 窗体背景色透明
    • 设置透明度
    • 获取窗体大小、鼠标位置
  • QWidget操作
    • 去除标题栏
    • 设置背景颜色
  • 布局
    • 滚动条布局
    • 清空layout
      • 仅删除layout中的widget
    • 同一个layout中两个widget互斥显示
  • QTableWidget
    • 添加一列选项框(QCheckBox)
  • qobject_cast
  • 技巧
    • BYTE 转 float :使用union联合体(避免多与强制转换,节约内存)

https://doc.qt.io/qt-5/classes.html#t

常用基类

QObject类

  • Qt对象模型的核心
  • Qt中几乎所有类、所有部件widget的基类
  • 提供了信号-槽的通信机制
  • 提供了事件处理机制
  • 实现了内存管理的功能

内存管理机制:父子对象的内存管理机制

  • 每个对象都有一个指向父对象指针
  • 由父对象来负责子对象的内存管理(内存回收)
    • 需要为每一个子对象指定父对象
  • 当一个父对象被删除,它的子对象也同样被删除

QApplication类:应用程序类(一般不直接操纵)

  • 主要功能:负责GUI应用的流程控制和主要的设置;
    • 负责处理事件循环
    • 处理应用程序的开始、结束
    • 系统和应用程序方面的总设置,如设置编码方式等。
  • QApplication对象只能有一个,而且必须在其他对象之前创建
  • 应用程序中通过全局指针qApp访问QApplication对象
  • 退出:
    • quit():返回0表示成功
    • exit(0)

QWidget类:窗体类

  • 所有用户界面对象的基类,是QObject类的子类。

  • 通常作为GUI。

  • 接收、处理 鼠标、键盘等其它事件

  • 作为一个容器可以包含其他窗体对象(窗口部件、图形界面组件)。

    • 在屏幕上绘制按钮Button、菜单menu、滚动条scroll bars、框架frame 等窗口部件。
    • 还可包含 菜单栏QMenuBar、工具栏QToolBar、状态栏QStatusBar等。
  • 当窗口部件被创建的时候,总是隐藏的,必须调用**show()**使它可见。

  • 一般不直接使用,通过子类继承来使用其函数功能。

容器控件QStackedWidget

https://blog.csdn.net/YinShiJiaW/article/details/105016253

  • 提供了一个控件栈,在这个栈中,一次只能显示一个控件
  • 页面的切换通常是通过QComboBox或者QListWidget来触发。
// 页面控件的添加与删除
stackedWidget->addWidget(groupBox_0);//添加
stackedWidget->insertWidget(1, groupBox_0);//插入
stackedWidget->removeWidget(groupBox_0);//删除

// 当前控件的索引
int index = stackedWidget->currentIndex();

Qt常用库

  • Qt中的根据功能划分在不同的

QtCore基本库

  • 基本数据类型:QString(不直接使用c++ 中String)、QByteArray(字节数组)
  • 基本数据结构:QList、QVector、QMap
  • 输入输出类:QTextStream(文本流)、QFile(文件类)
  • 多线程编程用到的类:QThread(多线程)、QWaitCondition(条件等待)

QtGui GUI库:包含图形窗口类

  • 窗口部件类:QWidget、QLabel、QPushButton
  • 布局类:QVBoxLayout、QHBoxLayout、QGridLayout
  • 主窗口类:QMainWindow、QMenu
  • 绘图类:QPainter、QPen、QBrush
  • 基本对话框类:QFileDialog、QprintDialog

网络和数据库相关类

QtNetwork: Qt网络库(QT进行网络编程时用的与网络相关的类)

  • QTcpSocket
  • QUdpSocket
  • QHttp
  • QFtp

QtSql:包含数据库编程相关类

  • QSqlQuery
  • QSqlDatabase

QLineEdit

密码模式

lineEdit->setEchoModeQLineEdit::Normal) 正常显示输入的字符,默认选项。
QLineEdit::NoEcho 不显示任何输入,常用于密码类型,包括密码长度
QLineEdit::Password 显示平台相关的密码掩码字符,而不是实际的字符输入。
QLineEdit::PasswordEchoOnEdit 处于输入状态的时候,是正常显示字符。 输入完毕之后,使用Password形式隐藏字符

QSpinBox

子部件

::down-arrow combo box或spin box的下拉箭头
::down-button spin box的向下按钮
::drop-down combo box的下拉箭头
::indicator checkbox、radio button或可选择group box的指示器
::item menu、menu bar或status bar的子项目
::menu-indicator push button的菜单指示器
::title group box的标题
::up-arrow spin box的向上箭头
::up-button spin box的向上按钮设计样式表

Dialog->setWindowFlags() 标题栏控制

// 去除标题栏
Dialog->setWindowFlags(Qt::FramelessWindowHint);

// 解决不显示问题
Dialog->setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);

Qt::WindowMinMaxButtonsHint: //显示最小化按钮和最大化按钮
Qt::WindowCloseButtonHint:   //显示关闭按钮

基本对话框

类型

  • 用户自己定义的窗体
  • 系统定义好的窗体

标准对话框之 QMessageBox

  1. information
static StandardButton QMessageBox::information ( QWidget * parent, const QString & title, const QString & text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton );

// 第四个参数 buttons,声明对话框放置的按钮,默认是只放置一个 OK 按钮,这个参数可以使用或运算,例如我们希望有一个 Yes 和一个 No 的按钮,可以使用 QMessageBox::Yes | QMessageBox::No,所有的按钮类型可以在 QMessageBox 声明的 StandarButton 枚举中找到;
// 第五个参数 defaultButton 就是默认选中的按钮,默认值是 NoButton,也就是哪个按钮都不选中。

在这里插入图片描述

  1. critical
    在这里插入图片描述

  2. warning
    在这里插入图片描述

  3. question
    在这里插入图片描述

  4. about
    在这里插入图片描述

文件操作

QFile

bool QFile::copy(const QString &fileName, const QString &newName)  // If a file with the name newName already exists, copy() returns false

bool QFile::exists(const QString &fileName)  // 不支持有中文或者空格

QFile::exists(QString().toLocal8Bit());  // .toUtf8()

Qfont类: 字体

常用函数作用
font.setPointSize(int)大小
font.setFamily(“楷体”)款式
font.setItalic(true)斜体
font.setStyle(QFont::StyleItalic)斜体
font.setOverline(true)上划线
font.setUnderline(true)下划线
font.setStrikeOut(true)删除线
setBold(bool)黑体
setKerning(bool)字距调整

QColor类

  • QColor构造函数基于RGB值创建颜色。
  • 要基于HSV或CMYK值创建QColor,分别使用toHsv()和toCmyk()函数。

QMetaObject类

QMetaObject::connectSlotsByName(QObject *object)

  • 不用写connect函数来连接信号和槽

  • 递归搜索给定对象的所有子对象,并将来自这些子对象的匹配信号连接到对象插槽。

  • 槽函数名规则:void on_<object name>_<signal name>(<signal parameters>);

QSplashScreen:程序启动画面

QSplashScreen splash(QPixmap("://Resource/images/xxx.png")); // 初始化图片到QSplashScreen
splash.show(); // 显示图片
a.processEvents(); // 刷新事件循环

splash.finish(&widget);

AES加密

AES库

QDesktopWidget

QRect deskRect = desktopWidget->availableGeometry();
double availableScreenX = deskRect.width();
double availableScreenY = deskRect.height();
QDesktopWidget* desktop = QApplication::desktop();

dlglogin.setGeometry(desktop->screenGeometry(0));  // 哪个屏幕
dlglogin.resize(availableScreenX/3, availableScreenY/2);  // 窗口大小
dlglogin.move((availableScreenX - availableScreenX/3) / 2, (availableScreenY - availableScreenY/2) / 2);  // 窗口位置:居中

QTimer

恒定的时间间隔会发射timeout()信号

QRubberBand橡皮筋类

绘制一个类似蚂蚁线的选区,并且选区线能够跟随鼠标的移动而伸缩

QRect

  • void QRect::getCoords(int *x1, int *y1, int *x2, int *y2) const : Extracts the position of the rectangle’s top-left corner to *x1 and *y1, and the position of the bottom-right corner to *x2 and *y2.

常用函数

输出

  • sprintf
  • arg

判断对象类型

T qobject_cast(QObject *object)

  • 如果给定的object是T类型或者T的子类,那么该方法把object转换成T类型,否则返回0,空对象也返回0.

bool QObject::inherits(const char *className) const

  • 判断

类型转换

  • QString.toLocal8Bit() 将QString以自己正确的编码方式读取并转换成编译器编码方式的字节流

循环

foreach

foreach (str, list)
    qDebug() << str;

取Object对象的列表:children & findChildren

// 1
QList<QLineEdit *> lineEdit=ui.groupBox->findChildren<QLineEdit *>();
for(auto item: lineEdit){
    qDebug()<<item->text()<<endl;
}

// 2
for(auto item:ui.groupBox->children())
{
    if(item->inherits("QLineEdit")){
        qDebug()<<item->objectName()<<endl;
    }
}

将输入框设为不可编辑

QList<QLineEdit *> lineEdit=ui.groupBox->findChildren<QLineEdit *>();
for(auto item: lineEdit){
    if("" != item->text()){
        item->setEnabled(false);
    }
}

去除标题栏

this->setWindowFlags(Qt::FramelessWindowHint);

窗体背景色透明

weiget->setAttribute(Qt::WA_TranslucentBackground, true);

https://www.cnblogs.com/Dennis-mi/articles/5307193.html

设置透明度

setWindowOpacity(0.5);

或使用QGraphicsOpacityEffect

获取窗体大小、鼠标位置

  • rect() 的x()、y()始终从(0,0)起,宽高客户区宽高。
  • geometry() 相对于父窗体的rect区域,当窗体是主窗体时,即是屏幕上的位置,客户区。
  • frameGeometry() 相对于父窗体的rect区域,当窗体是主窗体时,即是屏幕上的位置,客户区 + 标题栏。
  • event->pos() 鼠标相对于窗体的位置。
  • event->globalPos() 鼠标在全局范围的位置。
  • global(event->pos()) 鼠标在全局范围的位置。

QWidget操作

去除标题栏

setWindowFlags(Qt::Dialog | Qt::WindowMinimizeButtonHint);

setWindowFlags(Qt::FramelessWindowHint);

Qt::FrameWindowHint:         //没有边框的窗口
Qt::WindowStaysOnTopHint:    //总在最上面的窗口
Qt::CustomizeWindowHint:     //自定义窗口标题栏,以下标志必须与这个标志一起使用才有效,否则窗口将有默认的标题栏
Qt::WindowTitleHint:                  //显示窗口标题栏
Qt::WindowSystemMenuHint:    //显示系统菜单
Qt::WindowMinimizeButtonHint://显示最小化按钮
Qt::WindowMaximizeButtonHint://显示最大化按钮
Qt::WindowMinMaxButtonsHint: //显示最小化按钮和最大化按钮
Qt::WindowCloseButtonHint:   //显示关闭按钮 

设置背景颜色

this->setAttribute(Qt::WA_StyledBackground,true);
this->setStyleSheet("background-color: rgba(255,255, 255, 0)");

布局

滚动条布局

QGridLayout *gridLayout = new QGridLayout(this);
gridLayout->setContentsMargins(9, 9, 9, 9);
QScrollArea *scrollarea = new QScrollArea(this);
scrollarea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scrollarea->setWidgetResizable(true);

QWidget *scrollareawidgetcontents = new QWidget();  // 先把东西都放进去,再一起放入scrollarea
m_gridScrollArea = new QGridLayout(scrollareawidgetcontents);
m_gridScrollArea->setContentsMargins(0, 0, 0, 0);

// widget1
m_widget1 = new QWidget();
m_grid1 = new QGridLayout(m_widget1);
m_grid1->setContentsMargins(1, 1, 1, 1);
m_grid1->setSpacing(9);

m_gridScrollArea->addWidget(m_widget1, 0, 0);
// 添加伸缩条
QSpacerItem *verticalspacer = new QSpacerItem(20, 300, QSizePolicy::Minimum, QSizePolicy::Expanding);
QSpacerItem *horizontalspacer = new QSpacerItem(20, 300, QSizePolicy::Expanding, QSizePolicy::Minimum);
m_gridScrollArea->addItem(verticalspacer, 1, 0);
m_gridScrollArea->addItem(horizontalspacer, 0, 1);

scrollarea->setWidget(scrollareawidgetcontents);
gridLayout->addWidget(scrollarea, 0, 0, 1, 1);

清空layout

// 清除layout
void DSnapshotCmd::clearLayout(QLayout *layout)
{
    QLayoutItem *item;
    while((item = layout->takeAt(0)) != 0){
        //删除widget
        if(item->widget()){
            delete item->widget();
            //item->widget()->deleteLater();
        }
        //删除子布局
        QLayout *childLayout = item->layout();
        if(childLayout){
            clearLayout(childLayout);
        }
        delete item;
    }
}

仅删除layout中的widget

QLayoutItem *child;
while ((child = ui.gridLayout_report->takeAt(0)) != 0)
{
	ui.gridLayout_report->removeWidget(child->widget());
	child->widget()->setParent(0);
	delete child;
}

同一个layout中两个widget互斥显示

// 提前准备好widget1, widget2
m_grid->removeWidget(m_widget1);  // 不会销毁widget1,后续可继续addwidget加回来
m_grid->addWidget(m_widget2, 0, 0);
m_widget1->setVisible(false);  // removeWidget()后仍然显示,需要手动设为不可见
m_widget2->setVisible(true);

https://blog.csdn.net/calmreason/article/details/89632990

QTableWidget

添加一列选项框(QCheckBox)

table->insertRow(i);
QTableWidgetItem *item = new QTableWidgetItem();
item->setCheckState(Qt::Unchecked);
table->setItem(i, 0, item);

qobject_cast

在对Event处理中,可以通过obj及类型对事件进行处理

bool eventFilter(QObject *obj, QEvent *event)
{
    if(qobject_cast<ImagePreviewWidget*>(obj) == m_pImageSnap[0] && event->type() == QEvent::MouseButtonRelease)
	{
	}
}

技巧

BYTE 转 float :使用union联合体(避免多与强制转换,节约内存)

union UnionData
{
    float fdata;
    BYTE Bytedata[4];
}UnionIndex;
BYTE m_Reserve[1599];
......
memcpy(UnionIndex.Bytedata, m_Reserve,4);
item.m_fValue = UnionIndex.m_fdata;  // 与Bytedata共享内存,同一首地址
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT常用库、类、函数等 的相关文章

  • Django 服务启动2次问题

    首先 xff0c 我们的操作如下 xff1a 一 命令行的启动服务 xff1a python manage py runserver 0 0 0 0 8000 二 服务启动行为 try os environ setdefault 34 DJ
  • Django settings.py配置总结

    1 版本 xff1a 1 8 9 2 解决数据库时间和当前系统时间不一致问题 设置USE TZ 61 False 3 时区配置 xff1a TIME ZONE 61 39 Asia Shanghai 39 4 静态文件js css等的引用路
  • Extern关键字在vscode中不生效的解决办法

    今天回顾extern关键字的时候遇到一个问题 a c里的代码 b c里的代码 这么简单的几个代码 vscode竟然给我报错 为什么 抱着这个问题去逛了下csdn 终于让我找到了问题所在 原来vscode默认只能对单文件编译 即使俩文件在同一
  • 头文件、源文件 及extern的使用

    头文件与源文件的作用 1 编译器的工作过程 简单的说其实要理解C文件与头文件 xff08 即 h xff09 有什么不同之处 xff0c 首先需要弄明白编译器的工作过程 xff0c 一般说来编译器会做以下几个过程 xff1a 1 预处理阶段
  • 从零开始的三维激光雷达SLAM教程第二讲(搭建Gazebo仿真环境,并添加动态障碍物)

    文章目录 引言第二节 xff1a 搭建仿真环境下载velodyne激光模拟功能包安装turtlebot3模拟器安装三维激光雷达到turtlebot3上构建Gazebo地图添加动态障碍物操作机器人建图最终效果 引言 毕业设计打算做三维激光SL
  • 一个简单的基础通信协议的设计与实现

    一个简单的基础通信协议的设计与实现 一种常见的通信协议格式搭建串口收发环境配置STM32CubeMX添加USART部分代码 通信协议的实现 不同设备之间的通信 xff0c 都需要设计自己的通信协议 为了保证设备与设备之间的数据的稳定传输 x
  • 串口调试助手之间通信和接受、发送数据

    最近在用串口调试助手的时候在网上找了好多资料和教程都没有一个完整的 xff0c 就来写个完整的串口调试助手资料给刚入门或者刚接触的小白 xff0c 希望有所帮助 xff01 1 准备好串口调试助手 和 虚拟串口驱动 软件VirtualSer
  • win10下vs2019编译使用boost库v1_75_0

    boost介绍 Boost库是为C 43 43 语言标准库提供扩展的一些C 43 43 程序库的总称 boost是一个准标准库 xff0c 相当于STL的延续和扩充 xff0c 它的设计理念和STL比较接近 xff0c 都是利用泛型让复用达
  • vscode格式化C++代码方法

    参考 xff1a https blog csdn net wydxry article details 125191171 格式操作 解决方法 xff1a 按下组合键ctrl 43 shift 43 p 在弹出的搜索窗口中输入format
  • OpenCV基本介绍和安装

    OpenCV是一个通用 开源 功能强大的图像处理和计算机视觉库 官方网站 xff1a Home OpenCV 1999年 加里 布拉德斯基在Intel公司创建了计算机视觉库 xff08 Computer Vision Library xff
  • java jni ubuntu 环境搭建时遇到的坑

    1 xff1a 版本不一致遇到的坑 javah的版本需要同javac的版本一致 如果版本的问题搞不定 xff0c 直接用andorid source build之后的环境即可 2 xff1a javah使用遇到的坑 jni中字段描述符可以使
  • jni中native通过adb输出

    本文主要实践了如何在jni中打印log xff0c 贴源码 xff1a Android mk主要是巴拉的android源码中的app LOCAL PATH 61 call my dir include CLEAR VARS TARGET P
  • 关于服务器端用C语言实现TCP的数据接收

    关于这个 xff0c 真的是踩过很多坑 xff0c 罗列了一下要注意的点 xff1a 代码前面一定要添加库 xff0c 不然会出很多错 pragma comment lib 34 Ws2 32 lib 34 这段代码在vs2017中怎么也编
  • linux中断&poll&selcet按键处理机制

    在上一篇linux按键中断处理中 xff0c 我们采用按键中断处理获取按键 xff0c 在read函数中阻塞读取 xff0c 当按键发生时 xff0c read自动解除阻塞 xff0c 实现应用层读取到相应的按键值 在上一节中如果没有按键到
  • linux中断&poll&selcet按键处理机制

    在上一篇linux按键中断处理中 xff0c 我们采用按键中断处理获取按键 xff0c 在read函数中阻塞读取 xff0c 当按键发生时 xff0c read自动解除阻塞 xff0c 实现应用层读取到相应的按键值 在上一节中如果没有按键到
  • Java进阶day03继承

    先贴代码后分析 xff1a class Person span class hljs keyword private span span class hljs keyword int span age span class hljs key
  • JAVA进阶day05包和权限

    我这种外行人也听说过jar包 xff0c jar到底是个啥 xff1f 为啥c语言里没有呢 xff1f 下面我们拨开这一层面纱 贴代码做分析 xff1a 一 jar包 import a span class hljs preprocesso
  • Nandflash希尔特编程器烧录带来的一些点知识信息

    1 xff0e NAND FLASH 的特殊性 1 存在坏块 NAND FLASH 由于其生产工艺的原因 xff0c 出厂芯片中会随机包含坏块 坏块在出厂时已经被初始化 xff0c 并在特定区域中存在标记 xff0c 如果在使用过程中出现坏
  • 浅谈关于SRAM与DRAM的区别

    从名字上看 xff0c SRAM与DRAM的区别只在于一个是静态一个是动态 由于SRAM不需要刷新电路就能够保存数据 xff0c 所以具有静止存取数据的作用 而DRAM则需要不停地刷新电路 xff0c 否则内部的数据将会消失 而且不停刷新电
  • 在中断程序里修改全局变量的童鞋注意啦~(C中的volatile作用 转载~)

    一个定义为volatile的变量是说这变量可能会被意想不到地改变 xff0c 这样 xff0c 编译器就不会去假设这个变量的值了 精确地说就是 xff0c 优化器在用到这个变量时必须每次都小心地重新读取这个变量的值 xff0c 而不是使用保

随机推荐

  • arm MMU详解

    一 MMU的产生 许多年以前 xff0c 当人们还在使用DOS或是更古老的操作系统的时候 xff0c 计算机的内存还非常小 xff0c 一般都是以K为单位进行计算 xff0c 相应的 xff0c 当时的程序规模也不大 xff0c 所以内存容
  • 如何使用repo sync

    我們知道 repo 是 Google 為 Android source tree 的管理而寫的一個 script xff0c 以方便處理 Android 源碼包含的上百個 git repositories 要取得 upstream 最新的
  • 网络编程之Socket通信原理,TCP 、UDP、IPv4 IPv6地址,网络原理基础

    相关博客网址 xff1a https www cnblogs com wangcq p 3520400 html 本帖内容来源于网络 xff0c 如有侵权请联系删除 加粗样式 什么是TCP IP UDP xff1f TCP IP xff08
  • C++ 生成dll时没有顺带生成lib的原因

    C 43 43 dll库只生成dll文件 xff0c 而未生成lib文件 xff0c 问题在于没有在接口函数前面加上前缀 declspec dllexport 在VS的工程中 xff0c 此前缀常常被宏定义为 xff1a 工程名 API s
  • burp suite安装时,注册机点击run不起作用解决

    1 在cmd打开burpsuite pro v2 0beta jar所在目录 2 运行 java Xbootclasspath p burp loader keygen jar jar burpsuite pro v2 0beta jar
  • win10系统日语输入法只能打出英文字母无法切换&&微软输入法无法使用

    显示如下 xff1a 法1 xff1a 如果添加了日文 也安装了基本输入 xff0c 但是调出日文输入时屏幕右下角并不显示英文和假名的切换字母A xff0c 只能输入英文 xff0c 这样的win10一般安装的是ghost版 xff0c 一
  • 电脑虚拟摄像头 -obs及obs虚拟摄像头插件(免费)

    插件 xff1a 链接 xff1a https pan baidu com s 1AdAyc41LOHoSNesefcNOcA 提取码 xff1a pjne obs安装包 xff1a 链接 xff1a https pan baidu com
  • Mac电脑使用自然码双拼

    首先在键盘里选择双拼 然后打开 终端 执行 启动台 gt 其他当中 defaults span class token function write span com apple inputmethod CoreChineseEngineF
  • Mac.Android studio环境的搭建

    一 连接安卓手机 1 在 终端输入 xff1a system profiler SPUSBDataType 可以查看连接的usb设备的信息 2 创建 修改adb usb ini文件 输入 xff1a vi android adb usb i
  • rgb 与 #开头16进制 HEX颜色值关系转换,颜色值透明度的百分数对应十六进制表

    1 0x开头与 开头 从计算机的数值表示上讲 xff0c 0x开头的其实并不是所谓颜色代码的表示方法 xff0c 而是16进制数的标准写法 xff0c 譬如0xA就是十进制的10 而 开头 的六 xff08 或三 xff09 位十六进制数是
  • 74ls160 24进制异步计数器

    说明 xff1a 1 使用multisim 12仿真正常进位 xff0c 实际中可能到9进位 此时需要在U1和U2 xff0c RCO与Clk之间加个反相器 2 计数为23时清零 xff0c
  • SSH 出现 The authenticity of host xxx can't be established.

    已采纳 这个原因可能是本地主机的key发生了变化 xff0c 因此每次SSH链接都会有提示 xff0c 只需要在交互下输入yes即可 当然如果长久的想解决问题 xff0c 可以采用以下方法 xff1a 1 使用ssh连接远程主机时加上 o
  • Idea修改字符编码。解决文本乱码,以及控制台打印乱码问题,cmd乱码

    一 Idea修改字符编码 File gt Settings 二 文本乱码 修改编码为文本为文本本来的编码 xff0c 这里以GBK为例 点击apply xff0c 然后选择Reload 同样操作将编码改为utf 8 然后选择convert
  • Vrpn源码浅析(一)-添加自定义设备概述

    好记性不如烂笔头 最近需要用VRPN获取设备数据 xff0c 有些设备不在VRPN现有支持设备列表里 xff0c 就想着自己改一下源码添加一下 在网上找了一段时间发现包括官网上的教程基本都是教你怎么用的 xff0c 没找到告诉你怎么改的 x
  • (3)odroid xu4/3 SD卡的ubuntu系统烧入

    1 下载镜像 xff1a http odroid com dokuwiki doku php id 61 en xu3 release linux ubuntu 选择一个版本下载 xff08 镜像服务器 xff09 2 下载烧写工具 xff
  • Vrpn源码浅析(三)-添加optitrack追踪设备

    好记性不如烂笔头 xff0c 之前进行了源码的简单分析并尝试添加了joystick这类包含analog以及button类型数据的设备 这次我们更近一步 xff0c 尝试添加最为复杂的追踪设备 本次添加的设备为optitrack xff0c
  • [Index]博文索引

    为了方便查看需要的博文 xff0c 在此给出所有博文的索引链接地址 UAV Software Version xff1a ArduCopter xff08 Ver 3 3 xff09 Hardware Version xff1a pixha
  • NVIDIA JETSON XAVIER NX (四)安装Pytorch和torchvision

    可选择在NX上创建新python环境进行安装 xff0c 避免和其他工程环境发生冲突 xff0c 具体虚拟环境操作步骤可见Python创建虚拟环境 下面就开始安装pytorch的愉快之旅吧 xff01 1 安装相关依赖环境 span cla
  • 使用nuttx写自启任务

    首先从px4学习怎么进行系统任务 px4是通过nsh main里面调用nsh consolemain然后调用rcS文件 xff0c 运用rcS脚本命令启动相应模块 然而经过了一个礼拜的实践 xff08 浪费时间 xff09 xff0c 我发
  • QT常用库、类、函数等

    文章目录 常用基类QObject类内存管理机制 xff1a 父子对象的内存管理机制 QApplication类 xff1a 应用程序类 xff08 一般不直接操纵 xff09 QWidget类 xff1a 窗体类容器控件QStackedWi