本地项目git初始化并提交远程仓库 初始化本地项目首先执行git init进行本地项目的初始化。$ git initInitialized empty Git repository in D:/xxx/xxx/.git/初始化成功后在项目下会新增.git目录。关联远程仓库执行下面语句关联仓库(地址使用https和ssh格式都可以)。git remote add origin git@github.com:xxx/xxx.git添加访问权限如果访问git出现下面的报错,检查网络没有问题的话,可能是因为遗漏了添加公钥。$
设计模式(三)代理模式 代理模式(Proxy)为对象提供一种代理用以控制对该对象的访问。代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象过滤不希望客户看到的内容和服务,或者添加客户需要的额外服务。
设计模式(二)适配器模式 定义适配器模式用于解决接口间的兼容问题。当我们需要使用某个类提供的接口,但是这个接口与现在的系统需求不符,由于该接口是由第三方提供的,或者是已经在生产上跑了很久的存量类,我们不想通过改变这个类来满足现在系统的需求,那么这时候就可以考虑通过将目标类封装成一个满足系统需求的新类,因此适配器(Adapter)也称为包装器(Wrapper)。好比我们买了只手机,它只有一个type-c接口,想听音乐的时候,发现手上只有一条3.5mm的耳机,那这个时候相较于更换手机或者耳机,一般我们会选择一条type-c和3.5
设计模式(一)简单工厂、工厂方法、抽象工厂模式 工厂“工厂”主要是用于解决对象的创建的方法。在一般的工程代码中,如果要创建一个类的对象,往往会这样写:ClassA a = new ClassA();对于简单的类来说,上面的方法并无不妥,但在比较复杂的项目中,有可能会出现下面几种情况:1、进行类的改动时,比如修改了类名ClassA为ClassAB,那么在引用该类的地方就要进行修改为classAB a = new ClassAB()如果项目中依赖该类的地方较多,那么这个改动则需要耗费许多开发测试成本。2、该类的构建过程复杂,每次新增引用
Java实现数据结构中的八种排序方法 排序方法最好情况比较次数最坏情况比较次数时间复杂度空间复杂度稳定性直接插入排序n-1n(n-1)/2O(n²)O(1)稳定冒泡排序n-1n(n-1)/2O(n²)O(1)稳定简单选择排序n(n-1)/2n(n-1)/2O(n²)O(1)不稳定希尔排序O(n¹·³)O(1)不稳定快速排序O(nlogn)O(logn)不稳定堆排序O(nlogn)O(1)不稳定归并排序O(nlogn)...
Python Web: Tornado连接mysql数据库 Tornado有一个自己的操作数据库模块torndb,而torndb是依赖于MySQLdb实现的对MySQL数据库操作,但是python3中不支持MySQLdb,而是使用pymysql。pymysql连接数据库连接配置配置文件application.py加入:mysql = dict( host = "127.0.0.1", user = "root", password = "root")建立连接...
三维建模中的相机--Camera QML Type 在三维建模中,相机是必不可少的元素。相机模拟了观众的眼睛,只有摆放在合适的位置才能看到对应角度的模型。在Qt 3D中提供了Camera QML Type来创建相机。它具有如下属性:aspectRatio : real – 相机纵横比farPlane : real – 远平面fieldOfView : real – 视野nearPlane : real – 近裁剪面position ...
PySide2学习总结(十三)别名(alias)的使用 不使用alias在使用组件的过程中在不同的使用场景中需要对组件中的某个属性进行不同的设置,比如下面的main.qml中有两个按钮,两个按钮显示的文字不同,图示如下:两个button都是直接引用组件,那么则需要引用两个组件文件:Button1.qmlimport QtQuick 2.7Rectangle { width: 100; height: 30 Text {...
PySide2学习总结(十二)打开文件对话框--FileDialog 在Qt程序中经常会有进行选择文件的需求,可以在qml文件中使用FileDialog实现这个功能。FileDialog提供了一个基本的文件选择:它允许用户选择存在的的文件和/或目录,或者创建新的文件名。该对话框最初是不可见的。首先需要设置任意的属性,然后设置visible为true或调用open()方法。使用FileDialog首先需要引入如下模块:import QtQuick.Dialog...
PySide2学习总结(十一)QML布局 QML可以直接设置X与Y坐标的值来进行布局,但这种做法不利于布局的调整和代码的维护,因而更推荐采用定位器、布局管理器以及锚布局来完成QML布局。QML常用的定位器有:Row, Column, Grid以及Flow;常用布局管理器有RowLayout, ColumnLayout, GridLayout,通常结合Anchor(锚布局)使用。定位器RowQML 中的 Row 元素会将其子控件都排...
PySide2学习总结(十)菜单栏和工具栏 ApplicationWindow提供了简单的方式创建程序窗口,因为其有属性menuBar、toolBar、Tabview等属性,可以方便快速创建一个丰富的窗口。菜单栏(menuBar)菜单栏位于窗口顶部,包含程序提供给用户的操作。一个程序可包含多个菜单(menu),每个菜单可包含多个动作(Action)。在main.qml中编辑代码如下:import QtQuick 2.7impor...
PySide2学习总结(九)创建窗口 前言在QtQuick中,APP具有两种启动模式:一是前面用过的QQuickView + Item;二是QQmlApplicationEngine + Window。相对于QQuickView ,QQmlApplicationEngine加载以Window为根对象的QML文档,QML文档则拥有窗口的完整控制权,可以直接设置标题、窗口尺寸等属性。更详细的介绍可以查看官方文档:QQuickV...
PySide2学习总结(八)Qt的信号(Signal)和槽(Slot) 前言在GUI编程过程中,经常需要进行通信的处理,往往需要各种类型的对象之间进行通信,比如,当用户点击了某个按钮,我们希望它调用某个功能输出一些提示信息。在其他编程工具中往往使用“回调”技术来实现对象之间的通信。“回调”是将函数的指针(地址)作为参数传递给另一个处理函数,并在该函数内利用这个参数来调用原函数。简介在Qt中使用信号和槽(Signals and Slots)来实现其他编程工具包的...
PySide2学习总结(七)Qml教程 基础类型首先由一个简单的示例来进行QML的基础介绍。在view.qml编辑代码如下:// 导入Qt附带的内置QML类型(如Rectangle,Image,...)import QtQuick 2.0// 使用Rectangle类型声明根元素,Rectangle类型是在QML中创建应用程序的基本构建块之一Rectangle { // id用于标识该元素 id: page ...
PySide2学习总结(六)Dialog示例 This tutorial shows how to build a simple dialog with some basic widgets. The idea is to let users provide their name in a QLineEdit, and the dialog greets them on click of a QPushButton.Let us just ...
PySide2学习总结(五)button示例 编辑代码如下:import sysfrom PySide2.QtWidgets import QApplication, QPushButtonfrom PySide2.QtCore import Slot# @Slot()是一个装饰器,标志着这个函数是一个slot(槽)@Slot()def output():"""在控制台输出内容""" print("Bu
PySide2学习总结(四)vs code报错: No name 'QUrl' in module 'PySide2.QtCore'(E0611) 使用vs code编辑PySide2代码,运行过程中发现有E0611报错,但运行结果正常。发现是pylint的问题,打开settings查找python.linting.pylintArgs选择"Edit in settings.json"在左侧可以看到对应的设置,并在右侧修改区添加配置内容“–extension-pkg-whitelist=PySide2”此时不...