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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
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
- 1
- 2
- 3
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()<<"---------------------------";
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
//开启2D纹理
glEnable(GL_TEXTURE_2D);
//开启深度测试
glEnable(GL_DEPTH_TEST);
//矩阵归一化
QMatrix4x4 mModelMatrix;
mModelMatrix.setToIdentity();
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
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();
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
//获取屏幕大小
QDesktopWidget* desktopWidget = QApplication::desktop();
QRect screenRect = desktopWidget->screenGeometry();
- 1
- 2
- 3
文章来源: yujiang.blog.csdn.net,作者:鱼酱2333,版权归原作者所有,如需转载,请联系作者。
原文链接:yujiang.blog.csdn.net/article/details/112915395
- 点赞
- 收藏
- 关注作者
评论(0)