无题
C++ protected用法1、基类成员在派生类中访问权限不得高于继承方式中指定的权限。例如,当继承方式为protected时,那么基类成员在派生类中的访问权限最高也为protected,高于protected的会降级为protected,但低于protected不会升级。再如,当继承方式为public时,那么基类成员在派生类中的访问权限将保持不变。
2、也就是说,继承方式中的public、protected、private是用来指明基类成员在派生类中的最高访问权限的。
3、不管继承方式如何,基类中的private成员在派生类中始终不能使用(不能在派生类的成员函数中访问或调用)。
4、如果希望基类的成员能够被派生类继承并且毫无障碍的使用,那么这些成员只能声明为public或protected;只有那些不希望在派生类中使用的成员才声明为private。
5、如果希望基类的成员既不向外暴露(不能通过对象访问),还能再派生类中使用,那么只能声明为protected。
注意,我们这里说的是基类的private成员不能在派生类中使用,并没有说基类的private成员不能被继承。实际上,基类的p ...
无题
Python中 if name == ‘__main__‘的详细讲解及Python中的命名规则1、if name == ‘main‘: 是干啥的?先给出结论,对该语句用法简单的解释就是: 如果if __name__ == '__main__' 所在模块是被直接运行的,则该语句下代码块被运行,如果所在模块是被导入到其他的python脚本中运行的,则该语句下代码块不被运行。
2、程序入口的理解对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等。其中C 和 C++ 都需要有一个 main 函数来作为程序的入口,也就是程序的运行会从 main 函数开始。同样的,Java 和 C# 则必须要有一个包含 Main 方法的主类来作为程序入口。
但和C,C++、Java 以及 C# 等有所不同的是,Python属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,python是动态的逐行解释运行,也就是从脚本第一行开始运行,没有统一的入口。
另外我们知道,python文件有两种使用方法:
第一种:直接作为脚本执 ...
无题
Windows10命令行测试连接Tcp / Ip协议的服务1、首先确认cmd中是否有telnet命令,如出现以下提示则表示电脑未安装telnet
2、telnet开启方式
3、打开CMD输入以下命令123telnet IP 端口 #连接serverCTRL+] #进入输入界面send 内容 #发送字符串
无题
快速入门MicroPython开发ESP321、快速入门MicroPython开发ESP32 - roinxxX - 博客园 (cnblogs.com)
2、ESP32与MicroPython入门-01 搭建开发环境 - 冰封残烛 - 博客园 (cnblogs.com)
4、(109条消息) 【MicroPython】用ESP32学Python_GEEK.攻城狮的博客-CSDN博客_esp32支持python吗
3、Python教程 - 廖雪峰的官方网站 (liaoxuefeng.com)
git切换分支及git项目流程中常用命令
git克隆下来只有master分支的问题,git切换分支及git项目流程中常用命令1、git克隆下来只有master分支,切换其他分支【1】当我们使用 git clone + 远程仓库地址将项目下载下来之后,倘若远程仓库有多个分支,我们在本地使用git branch查看本地分支时,只有一个master分支。1234$ git branch会出现:* master
【2】大多数我们需要在其他分支就行工作的,所以我们需要将远程其他分支拉下来才行,首先使用git branch -a查看远程分支,那些以rmotes开头且为红色的都是远程分支,或者理解为这些分支是隐藏的。123456789$ git branch -a* master remotes/origin/HEAD -> origin/master remotes/origin/develop remotes/origin/feature remotes/origin/feature-im remotes/origin/master remotes/origin/newbranch
【3】如 ...
无题
在linux系统下中.sh文件无法执行的问题及解决方法1、问题背景在写了shell脚本1.sh文件后,想要执行该脚本,结果提示我权限不够。
然后我就加上了管理员权限,其实这里提示的并不是管理员权限不够,而是这个shell脚本并没有执行的权限。
结果提示我找不到命令,但是我使用ls查看后,发现1.sh文件存在。
2、解决方案一:系统GUI中设置首先我们在文件夹下找到该文件,我的1.sh文件所在目录为:/home/wjie/file/work/:
这个时候,我们右击该文件,点击属性,打开权限,勾选允许作为程序执行文件:
然后再回到终端,执行sudo ./1.sh,发现可以执行了:
3、解决方案二:命令给与权限此文件本身就是因为没有执行权限因此无法执行,这里我们可以直接在终端给该shell脚本添加上可执行权限,代码为chmod +x 1.sh:
如上,执行命令后shell脚本就可以执行了。
Python3初级教程
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220 ...
无题
Qt解析XML文件1、简介QtXML模块提供了一个读写XML文件的流,解析方法包含DOM和SAX。
DOM(Document ObjectModel):将XML文件表示为一棵树,便于随机访问其中的节点,但消耗内存相对多一些。
SAX(Simple APIfor XML):一种事件驱动的XML API,接近于底层,速度较快,但不便于随机访问任意节点。
使用XML模块,在.pro文件中添加QT += xml,并加入相应的头文件#include <QDocument>或者#include <QXmlStreamReader>
2、详解QXmlStream常用到的函数含义:
导入一个xml文件或字符串的方式:
12345678910//方式一QXmlStreamReader reader(sXMLContent);//字符串的xml //方式二QXmlStreamReader reader;reader.addData(sXMLContent);//要解析的字符串 //方式三QFile f("./test/xml);reader.setDe ...
无题
Qt键盘事件1、背景描述当键盘被按下或者释放时候,键盘事件便会被发送给拥有键盘输入焦点的部件。QKeyEvent的key函数可以获取具体的按键,对于Qt中给定的所有按键,可以在帮助中通过Qt::Key关键字查看。需要特别说明的是,回车键在这里是Qt::Key_Return,键盘上的一些修饰键,比如Ctrl和Shift等,这里需要使用QKeyEvent的modifiers()函数来获取,可以在帮助中使用Qt::Keyboard-Modifier关键字来查看所有的修饰键。
2、代码演示新建Qt Widget应用,项目名称为mykeyevent,基类选择QWidget,项目名称mykeyevent,完成后在widget.h文件中添加函数声明:
123protected: void keyPressEvent(QKeyEvent *event); void keyReleaseEvent(QKeyEvent *event);
在到widget.cpp文件中实现函数,添加头文件#include< QKeyEvent>,测试使用Ctrl+M键来使窗口最大化
123 ...
无题
Qt实战—利用QPushButton实现按钮长按事件1、代码演示1234567891011121314// 启用长按ui->pushButton->setAutoRepeat(true); // 按钮触发的初始延迟时间ui->pushButton->setAutoRepeatDelay(500); // 长按时,按钮重复点击的时间间隔ui->pushButton->setAutoRepeatInterval(500); connect(ui->pushButton, &QPushButton::clicked, [&]{ qDebug() << "Hello" << endl;})
个人理解:
可以将上述代码放入构造函数,这样就把信号和槽绑定了。因为前面三行代码是关于button按钮的状态设置,所以可以根据自己的需求逻辑来控制。如果直接放入对应的槽函数的话,第一次长按可能没有效果哦。
有关connect()的使用,后面详解。
2 ...