rect

Python案例:按键测试

谁说我不能喝 提交于 2019-11-27 22:59:25
Python案例:按键测试 1、消息类文件message.py import pygame class Message: def __init__(self, screen, text): self.screen = screen self.text = text def settext(self, text): self.text = text def gettext(self): return self.text def blit(self): font = pygame.font.SysFont('宋体', 40) self.surface = font.render(self.text, True, (0, 0, 255)) self.rect = self.surface.get_rect() self.rect.left = 20 self.rect.top = 50 self.screen.blit(self.surface, self.rect) 2、函数文件functions.py import sys import pygame def check_events(message): for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() elif event.type =

串口调试助手--Qt

徘徊边缘 提交于 2019-11-27 16:46:47
串口调试助手----------该程序使用Qt框架,C ++语言编译而成 项目文件介绍: main.cpp 该文件为该程序的入口程序 mainwindow.h 该文件为该程序的主要声明部分 mainwindow.cpp 该文件为该程序的主要定义部分 mainwindow.ui 该文件为该程序的ui界面设计 界面.png 界面的显示效果 该文件中获取串口是通过读取Windows系统下的注册表中的信息得到的, - 使用Qt中的定时器来每个3s读取一次注册表 串口通信方面:通过使用Qt的封装的QSerialPort来实现 main.cpp #include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QSerialPort> #include <QTimer> namespace Ui { class MainWindow; } class MainWindow :

Qt学习笔记(其他控件)

此生再无相见时 提交于 2019-11-27 16:43:21
group box 一个分组布局 用于加入多个控件 Scroll Area 控件用于放入多个控件,地方不够大了会有滚动条 toolbox 和QQ 里的分组很像,家人 朋友等等。 修改内容 currentIndex下的 currentltemText tab widget标签页的切换 网页中的百度 新浪等等 Stacked widget 栈创空,栈容器 stacked 中的小黑箭头是方便设计的,在运行的时候是没有的。 在设计的情况下才有,方便设计 相当于 整个看到的东西 真个栈都换掉了 放三个按钮,按第一个按钮,切换一个栈,按第二个按钮,切换一个栈 combo box 下拉框 font Combo Box看Word文档字体有什么 这里就有什么 line Edit 行编辑 QLine Edit选项下有 echoMode属性 Normal是什么都看不见 password是密文遮挡 passwordEdit 输入时没哟遮挡,光标放在其他地方才有遮挡 Text Edit是文本编辑框 Plain Text edit是纯文本编辑框 text edit 可以加粗字体颜色等辅助设置 后者是纯文本 QLable 不仅可以显示文字还可以显示图片 QLable 还可以显示动图 ui->lineEdit->setFocus(); //设置光标焦点 光标定位在哪里 #---------------------

Qt学习笔记(自定义控件)

烈酒焚心 提交于 2019-11-27 16:41:13
#------------------------------------------------- # # Project created by QtCreator 2019-08-17T08:42:10 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = 03_01_SmallWidget TEMPLATE = app # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make

Pygame小游戏练习五

淺唱寂寞╮ 提交于 2019-11-27 15:19:19
@Python编程从入门到实践 Python项目练习 十一、显示游戏得分及最高分 创建新类Scoreboard,用以显示得分和最高分。 # scoreboard.py import pygame.font class Scoreboard(): """显示得分信息的类""" def __init__(self, ai_settings, screen, stats): """初始化显示得分涉及的属性""" self.screen = screen self.screen_rect = screen.get_rect() self.ai_settings = ai_settings self.stats = stats # 显示得分信息时使用的字体设置 self.text_color = (30, 30, 30) self.font = pygame.font.SysFont(None, 48) # 准备初始得分图像 self.prep_score() # 准备最高得分 self.prep_high_score() def prep_score(self): """将得分转换为一幅渲染的图像""" rounded_score = int(round(self.stats.score, -1)) score_str = "{:,}".format(rounded_score) self

c++ 继承

泄露秘密 提交于 2019-11-27 13:47:38
继承 继承 允许我们依据另一个类来定义一个类 这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行时间的效果。 当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为 基类 ,新建的类称为 派生类 。 一、基类 派生类 一个类可以派生自多个类,这意味着,它可以从多个基类继承数据和函数 定义一个派生类,我们使用一个类派生列表来指定基类。类派生列表以一个或多个基类命名,形式如下: class derived-class: access-specifier base-class 访问修饰符 access-specifier 是 public、protected 或 private 其中的一个base-class 是之前定义过的某个类的名称。如果未使用访问修饰符 access-specifier,则默认为 private。 举例: #include <iostream> using namespace std; // 基类 class Shape { public: void setWidth(int w) { width = w; } void setHeight(int h) { height = h; } protected: int width; int height; }; // 派生类

基于Opencv来快速实现人脸识别(Python学习)

本秂侑毒 提交于 2019-11-27 12:48:40
随着人工智能的日益火热,计算机视觉领域发展迅速,尤其在人脸识别或物体检测方向更为广泛,今天就为大家带来最基础的人脸识别基础,从一个个函数开始走进这个奥妙的世界。 首先看一下本实验需要的数据集,为了简便我们只进行两个人的识别,选取了beyond乐队的主唱黄家驹和贝斯手黄家强,这哥俩长得有几分神似,这也是对人脸识别的一个考验: 两个文件夹,一个为训练数据集,一个为测试数据集,训练数据集中有两个文件夹0和1,之前看一些资料有说这里要遵循“slabel”命名规则,但后面处理起来比较麻烦,因为目前opencv接受的人脸识别标签为整数,那我们就直接用整数命名吧: 为了方便,我们每个人用20张照片来训练,0代表黄家驹,1代表黄家强: 开始啦: 检测人脸。这应该是最基本的,给我们一张图片,我们要先检测出人脸的区域,然后才能 进行操作,opencv已经内置了很多分类检测器,我们这次用haar: def detect_face(img): #将测试图像转换为灰度图像,因为opencv人脸检测器需要灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #加载OpenCV人脸检测分类器Haar face_cascade = cv2.CascadeClassifier(’./haarcascade_frontalface_default.xml’)

小程序制作仿微信聊天的细节处理

牧云@^-^@ 提交于 2019-11-27 12:09:23
记录做的一次仿聊天的小程序碰到的一些细节 问题: 1.键盘输入框随 内容自动增高 2.每次发完消息屏幕在发出消息的 最底部 (以及上拉在最上面) 3.键盘 弹起不盖住屏幕内容 解决: 一、解决输入框内容的自动增高 如上图一样输入内容变多之后自动换行,而且限制高度(高度我们用max-height限制就好了) 那么我们来看看我们怎么让内容自动换行吧。 input 我们都知道输入内容会一直往后走,并不会自动换行(h5中可以给div加上contenteditable 操作等等,pc中可以操作dom判断换行操作等等)。 所以小程序我选择的是 textarea 标签, 它有一个属性自动增高 写几行不想自动增高了可以给它一个 max-height 限制超出隐藏,这样就解决了问题。 二、解决一进入到页面就是在最底下 以及 发完送消息也在最下面 和 下拉也在最上面 页面显示问题 我们都习惯知道,一进入页面就是在消息列表的最下面,以及我们下拉刷新,刷新成功我们在刷新消息的最上面一些操作习惯 之前有人用 wx.pageScrollTo 下面这种方式去实现(个人感觉一进入页面就会有闪烁、页面大小算不准一些问题所以另外想了种办法) // 获取容器高度,使页面滚动到容器底部 pageScrollToBottom: function() { wx.createSelectorQuery().select('#j

Pygame小游戏练习二

随声附和 提交于 2019-11-27 10:52:58
@Python编程从入门到实践 Python项目练习 四、创建Ship类 建立ship.py,创建Ship类,管理飞船行为。 # ship.py import pygame class Ship(): def __init__(self, ai_settings, screen): """初始化飞船并设置其初始位置""" self.screen = screen self.ai_settings = ai_settings # 加载飞船图像 self.image = pygame.image.load('images/ship.bmp') self.image = pygame.transform.scale(self.image, (37*2, 34*2)) # 获取其外接矩形(rect为surface矩形属性) self.rect = self.image.get_rect() self.screen_rect = screen.get_rect() # 将每艘新飞船放在屏幕底部中央 self.rect.centerx = self.screen_rect.centerx self.rect.bottom = self.screen_rect.bottom # 在飞船的属性center中存储小数值 self.center_x = float(self.rect.centerx)

Android6.0 显示系统(一) Surface创建

元气小坏坏 提交于 2019-11-27 08:36:28
之前在分析Activity的时候,我们分析过Surface创建。这个系列的博客是讲述显示系统,这里再系统的分析下Surface创建过程。 之前我们分析在Activity在调用attach方法时,建立ViewRootImpl,以及创建其Surface过程,还有在WMS中创建Surface的过程。 这篇博客我们通过另外一个方式分析,但是其实质是一样的。 一、应用层创建Surface 应用开发中很少直接使用Surface,因为每个Activity中已经创建好了各自的Surface对象(就是之前博客分析的在ViewRootImpl通过WMS创建的),通常只有一些特殊应用才需要在Activity之外创建Surface,例如照相机、视频播放应用。通常这些应用也是通过创建SurfaceView来使用Surface。在应用中不直接创建一个可用的Surface对象,或者说直接创建出来的Surface对象也没用,因为这样的Surface不能和SurfaceFlinger之间有关联。 下面我们就来看下SurfaceView是如何创建Surface的,在SurfaceView有两个Surface一个mSurface表示正在用的,另一个mNewSurface代表我们要切换的。 final Surface mSurface = new Surface(); // Current surface in use