#记录不按章节顺序,碰到问题就记下来。

1.关于Mapper、Map()等用法:

mapper->setMapping(button0,codec->toUnicode(“0”));
connect(button0,SIGNAL(clicked()),mapper,SLOT(map()));
connect(mapper,SIGNAL(mapped(QString)),this,SLOT(buttonClicked(QString)));
解疑:
QSignalMapper类是专门用来绑定发送者信号函数的工具类。
mapper->setMapping(button0,codec->toUnicode(“0”));这句话的意思是让该工具类影射button0对象的信号。
connect(button0,SIGNAL(clicked()),mapper,SLOT(map()));是指定影射button0按钮的clicked信号函数
connect(mapper,SIGNAL(mapped(QString)),this,SLOT(buttonClicked(QString)));这句话的意思把具体影射是根据QString参数类型来判定,该工具类取按钮的名称值,然后传送给buttonClicked(QString)槽函数处理。
2. 1、关于c++函数过载, QOverload::of这个语句表示的是什么意思,有什么作用呢,百度查的没有看懂
2、今天查出了一个bug,说是重定义,具体就是自定义了一个继承了QGroupBox的子类,其中有一个signals信号函数是void valueChanged(int value);,这个方法假如再源文件实现的话就显示重定义,这个是为什么呢?是父类没有把他设置为虚函数吗,那为什么还要在我定义的类中声明这个信号方法,而不是直接使用&QGroupBox::valueChanged呢
解答:
1.QVerload是用来选择加载QSpinBox类的valueChanged信号函数,然后把它绑定另外一个滑动条对象的setValue槽函数。
实现对Qt装饰件的默认信号函数和槽函数的自由绑定,以方便第三方程序的使用。
2.Qt提供了很多种方式的信号/槽机构,因为版本不同,对它这个机制实现也有所不同。我们在使用时要按照它的框架规则去使用。不能直接使用OO的思想套用。

第一步:安装Python解释器并配置path环境变量

下载及安装、配置Python请移步阿斌师兄的文章:

Python学习笔记(配置开发环境)

第二步:安装virtualenv,即Python解释器的虚拟环境

(本次教程后面并没有使用到,第二步可以暂时跳过,后面创建复杂项目时一并补上)
在配置好Python环境变量后,在控制台输入以下命令:

pip install virtual

如果想提升pip的下载速度,可以移步下面的文章:

体验飞速模块安装:PIP更换国内安装源

第三步:下载并安装VsCode编辑器

安装时,可以默认将所有复选框都选中
下载地址:https://code.visualstudio.com

第四步:在VsCode中安装Python插件


安装的python插件可以起到以下的作用:
1、让VsCode具有调用Python解释器的能力。其实就是在setting.json和launch.json这两个配置文件中,可以添加python相关的配置了,比如通过python.pythonPath的值找到python解释器的位置等等。
2、按下ctrl键后点击某个函数,可以打开函数所在的文件及定义的位置
3、让VsCode具备代码提示功能
安装完python插件后建议重启VsCode使插件生效。

第五步:在VsCode下创建并运行一个Python项目

5-1:创建一个总项目目录,可以保存多个项目的工作区
我的工作区目录:F:/VsCodeWorkdSpace
可以在VsCode环境下直接打开创建的工作区目录

5-2:在工作区目录下创建Python工程目录

5-3:为项目运行配置Python解释器
5-3-1:选中创建的项目文件夹,我的是:PythonProject1

5-3-2:按下快捷键 ctrl + shift + p 选择Python解释器


我的机器上安装了2.x和3.x版本的Python解释器,大家可以选择3.x版本的Python解释器
选择完Python解释器后,工作区文件夹下会自动生成.vscode文件夹和settings.json文件
文件内容就是我们刚刚选择的Python命令的路径:

{
    "python.pythonPath": "C:\\Program Files (x86)\\Python38-32\\python.exe"
}

5-3-3:为项目运行指定入口文件及参数




至此,一个基本的VsCode+Python的开发环境我们已经配置好了,下面就可以在项目中创建一个Python文件并运行了

第六步:创建Python文件并运行

点击右上角的三角按钮运行Python代码:

也可以在空白处点击鼠标右键,选择不同的运行方式:

最后说一个由文件名引起的错误:
在直播课上给小伙伴们分享了一个使用Python书写的《天空之城》音乐播放程序
文件名:用Python写一段音乐(winsound).py
在Pycharm下可以运行,但在VsCode环境下却出现错误:

经过测试,是因为文件名中包含了特殊字符小括号:()
文件名去掉小括号即可正常运行。
附上Python代码:

from winsound import Beep

# 某大神使用Python书的写天空之城,运行时请使用耳机或音箱播放
def sound():
    Beep(880, 250)
    Beep(988, 250)
    Beep(523 * 2, 600)
    Beep(988, 300)
    Beep(523 * 2, 600)
    Beep(659 * 2, 600)
    Beep(988, 1000)
    Beep(659, 250)
    Beep(659, 250)
    Beep(880, 600)
    Beep(784, 300)
    Beep(880, 600)
    Beep(523 * 2, 600)
    Beep(784, 1000)
    Beep(659, 600)
    Beep(698, 800)
    Beep(659, 300)
    Beep(698, 600)
    Beep(523 * 2, 600)
    Beep(659, 980)
    Beep(523 * 2, 250)
    Beep(523 * 2, 250)
    Beep(523 * 2, 250)
    Beep(988, 600)
    Beep(739, 300)
    Beep(739, 600)
    Beep(988, 600)
    Beep(988, 1000)
    Beep(880, 250)
    Beep(988, 250)
    Beep(523 * 2, 600)
    Beep(988, 300)
    Beep(523 * 2, 600)
    Beep(659 * 2, 600)
    Beep(988, 1000)
    Beep(659, 250)
    Beep(659, 250)
    Beep(880, 600)
    Beep(784, 300)
    Beep(880, 600)
    Beep(523 * 2, 600)
    Beep(784, 1000)
    Beep(659, 600)
    Beep(698, 800)
    Beep(659, 300)
    Beep(698, 600)
    Beep(523 * 2, 600)
    Beep(659, 980)
    Beep(523 * 2, 250)
    Beep(523 * 2, 250)
    Beep(523 * 2, 250)
    Beep(988, 600)
    Beep(739, 300)
    Beep(739, 600)
    Beep(988, 600)
    Beep(988, 1000)

sound()

pip国内的一些镜像

    阿里云 http://mirrors.aliyun.com/pypi/simple/ 
    中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 
    豆瓣(douban) http://pypi.douban.com/simple/ 
    清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 
    中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

临时使用时,可以在pip后添加 -i 参数,指定pip源:

# 比如安装pygame模块(任选其一)
pip install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pygame -i http://mirrors.aliyun.com/pypi/simple
pip install pygame -i http://pypi.douban.com/simple
pip install scrapy -i http://pypi.mirrors.ustc.edu.cn/simple
........

如果想一劳永逸永久修改安装源:

Linux下:
修改~/.pip/pip.conf (没有就创建一个), 内容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

Windows下:
1、直接在user目录下创建一个pip目录,如:c:\Users\用户名\pip
2、在新创建的pip目录下新建文件:pip.ini,复制内容如下

[global]
timeout=6000
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host=pypi.tuna.tsinghua.edu.cn

或者也可以这样操作:
1、Win + R 键打开用户目录:%HOMEPATH%

2、按确定后会打开当前用户目录,在这个目录下创建pip文件夹
3、在新建的pip目录下新建文件:pip.ini,复制以下内容:

[global]
timeout=6000
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host=pypi.tuna.tsinghua.edu.cn

Pygame最初由Pete Shinners开发,它是一个跨平台的Python模块,专为电子游戏设计,包含图像、声音和网络支持。这些功能使开发者能够很容易地使用Python编写一个游戏。虽然不使用Pygame也能写一个游戏,但如果充分利用Pygame库中已经写好的代码,开发就要容易很多。Pygame能把游戏设计者从低级语言的束缚中解放出来,专注于游戏逻辑本身。
由于Pygame很容易使用并且跨平台,所以在游戏开发中十分受欢迎。因为Pygame是开放源代码的软件,也促使一大批游戏开发者为完善和增强它的功能而努力。

安装pygame库

1、 在控制台下安装pygame

python -m pip install -U pygame --user
python -m pygame.examples.aliens

import pygame
print(pygame.ver)

注意,如果使用pip安装模块时有类似下面的错误信息:
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the ‘python -m pip install –upgrade pip’ command
那么可以使用给出的提示命令升级pip:
升级pip

如果感觉安装速度异常慢,也可以参考这篇文章更换国内的安装源:

体验飞速模块安装:PIP更换国内安装源

pip升级成功后就可以使用以下命令安装pygame模块了:

pip install pygame

2、在Pycharm环境下安装pygame

1、打开当前工程的解释器配置界面:
File – Settings – Project:当前工程名称 – Project Interpreter


2、单击Project Interpreter窗口三角按钮上面的 “+”按钮,安装pygame模块

出现“Package ‘pygame’ installed successfully”表示模块已安装成功

根据实际测试,如果出现安装错误,建议大家使用清华大学的源