2021年1月份经验总结

记录一下每天的收获

2021年1月20日收获

  • Qt进行socket通信,存在一个bind函数可以指定使用的ip和端口号。
  • Linux显卡可以用命令虚拟一个IP
  • 虚拟机的网络模式:专用网络、桥接、NAT模式、仅主机模式。

桥接

桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致

NAT模式

a. 默认使用VMnet8,提供DHCP服务
可自动分配IP地址,也可手动设置IP
b. 虚拟机可以和物理主机互相访问,但不可访问主机所在网络的其他计算机,可访问外部网络

2021年1月21日收获

  • go语言相关支持很多cpu架构,而且有很多平台是编译好的,不用交叉编译。这一点挺不错的。而且官网提供了编译器支持的CPU指令集。

该网址为下载地址 https://studygolang.com/dl

The Go compilers support the following instruction sets:
amd64, 386
The x86 instruction set, 64- and 32-bit.
arm64, arm
The ARM instruction set, 64-bit (AArch64) and 32-bit.
mips64, mips64le, mips, mipsle
The MIPS instruction set, big- and little-endian, 64- and 32-bit.
ppc64, ppc64le
The 64-bit PowerPC instruction set, big- and little-endian.
riscv64
The 64-bit RISC-V instruction set.
s390x
The IBM z/Architecture.
wasm
WebAssembly.

  • 为了能在PC机模拟这些嵌入式的开发环境,搜索了一个神奇虚拟机QMenu,日后需要仔细进行研究

2021年1月22日收获

这是一个项目启动Qt的shell脚本

#/bin/bash

QTVER=5.14.1
export QTDIR="/opt/deepin-qt-env/opt/qt5.14"
if [ ! -d $QTDIR ]; then
    echo "Not found Qt5"
fi

export QT_QPA_PLATFORM=xcb
export QT_QPA_EGLFS_HIDECURSOR=0

export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH
# export QTWEBENGINE_DISABLE_SANDBOX=1
export XDG_RUNTIME_DIR="/tmp"
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

unset QT_QPA_EGLFS_INTEGRATION
unset QT_QPA_GENERIC_PLUGINS

./xxxxxxx

qmue使用深度系统的命令

qemu-img create linux.img 40G

qemu-system-x86_64 -m 1024 F:\yuch\qemu\deepin\linux.img -cdrom  H:\linux\deepin-desktop-community-1010-amd64.iso

2021年1月25日收获

Qt opengl代码段

//输出包含的opengl功能函数
void OpenglWnd::outputFunc(QOpenGLFunctions::OpenGLFeatures flag)
{
   qDebug()<<"Qt包含opengl功能函数:"<<QString::number(flag,16);
  if (flag.testFlag(OpenGLFeature::Multitexture))
     qDebug() << "Multitexture";
  if (flag.testFlag(OpenGLFeature::Shaders))
     qDebug() << "Shaders";
  if (flag.testFlag(OpenGLFeature::Buffers))
     qDebug() << "Buffers";
  if (flag.testFlag(OpenGLFeature::Framebuffers))
     qDebug() << "Framebuffers";
  if (flag.testFlag(OpenGLFeature::BlendColor))
     qDebug() << "BlendColor";
  if (flag.testFlag(OpenGLFeature::BlendEquation))
     qDebug() << "BlendEquation";
  if (flag.testFlag(OpenGLFeature::BlendEquationSeparate))
     qDebug() << "BlendEquationSeparate";
  if (flag.testFlag(OpenGLFeature::BlendSubtract))
     qDebug() << "BlendSubtract";
  if (flag.testFlag(OpenGLFeature::CompressedTextures))
     qDebug() << "CompressedTextures";
  if (flag.testFlag(OpenGLFeature::Multisample))
     qDebug() << "Multisample";
  if (flag.testFlag(OpenGLFeature::StencilSeparate))
     qDebug() << "StencilSeparate";
  if (flag.testFlag(OpenGLFeature::NPOTTextures))
     qDebug() << "NPOTTextures";
  if (flag.testFlag(OpenGLFeature::NPOTTextureRepeat))
     qDebug() << "NPOTTextureRepeat";
  if (flag.testFlag(OpenGLFeature::FixedFunctionPipeline))
     qDebug() << "FixedFunctionPipeline";
  if (flag.testFlag(OpenGLFeature::TextureRGFormats))
     qDebug() << "TextureRGFormats";
  if (flag.testFlag(OpenGLFeature::MultipleRenderTargets))
     qDebug() << "MultipleRenderTargets";
  if (flag.testFlag(OpenGLFeature::BlendEquationAdvanced))
     qDebug() << "BlendEquationAdvanced";
  qDebug()<<"---------------------------";
}
    //开启2D纹理
    glEnable(GL_TEXTURE_2D);
    //开启深度测试
    glEnable(GL_DEPTH_TEST);

	//矩阵归一化
     QMatrix4x4 mModelMatrix;
     mModelMatrix.setToIdentity();

2021年1月26日收获

Opengl屏幕坐标系,屏幕中心为(0,0坐标远点,笛卡尔坐标系,两边边界为-1~+1)所有的屏幕坐标,都要转换成该坐标后传入shader。
Opengl的MVP矩阵可以分别传入shader,然后shader进行乘法运算。

2021年1月27日收获

开了一天会,收获了go语言支持的cpu架构

The Go compilers support the following instruction sets:
amd64, 386
The x86 instruction set, 64- and 32-bit.
arm64, arm
The ARM instruction set, 64-bit (AArch64) and 32-bit.
mips64, mips64le, mips, mipsle
The MIPS instruction set, big- and little-endian, 64- and 32-bit.
ppc64, ppc64le
The 64-bit PowerPC instruction set, big- and little-endian.
riscv64
The 64-bit RISC-V instruction set.
s390x
The IBM z/Architecture.
wasm
WebAssembly.

2021年1月28日收获

收获了如何用qt做个弹出动画

m_panimation  = new QPropertyAnimation();
QPropertyAnimation *m_panimation;
//设置动画间隔120ms
m_panimation->setDuration(120);
//设置运算的属性
 m_panimation->setPropertyName("geometry");
 //设置动画对象
 m_panimation->setTargetObject(&m_menu);
 //设置开始值和结束值
 m_panimation->setStartValue(QRect(this->pos().x(), this->pos().y(),800,0));
 m_panimation->setEndValue(QRect(this->pos().x(),this->pos().y(),800,80));
 //设置动画曲线
 m_panimation->setEasingCurve(QEasingCurve::OutQuad);
//绑定动画完成后元器件隐藏
auto func = [=](){
            m_menu->hide();
};
connect(m_panimation,&QPropertyAnimation::finished,func);
 //开始动画
 m_panimation->start();

	//获取屏幕大小
    QDesktopWidget* desktopWidget = QApplication::desktop();
    QRect screenRect = desktopWidget->screenGeometry();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程小鱼酱

用心写好每一篇博客

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值