自娱自乐,我的博客(三)——Butterfly主题与博客功能扩展
自娱自乐,我的博客(三)——Butterfly主题与博客功能扩展前言:阅读这篇文章我能学到什么?  Hexo还支持给博客安装各种免费的第三方插件,这篇文章主要介绍一些优秀的插件安装和使用,使得我们的个人博客更加的功能完善好用。
1 安装本地搜索插件  先在我们个人博客的根目录执行指令安装本地搜索插件wzpan/hexo-generator-search。
1npm install hexo-generator-search --save
  在博客根目录的配置文件中添加下面这段配置
1234search: path: search.xml field: all content: true
  关于这几个参数的具体作用请查阅GitHub上该项目的说明。接着还需要开启主题的站内搜索功能。在博客主题的配置文件butterfly.yml中查找关键字 local_search 进行如下配置。
12345local_search: e ...
自娱自乐,我的博客(五)——Hexo静态网页部署到Gitee和Coding
自娱自乐,我的博客(五)——Hexo静态网页部署到Gitee和Coding前言:  之前是将博客部署到Github Pages上,虽然国内访问很慢但是也就凑合用了,但是最近Github Pages被墙了导致无法访问,已经持续半个多月了,于是决定将博客源文件依旧存在Github,但是静态网页上传到Gitee和Coding上。Gitee和Coding也是可免费部署静态网页的平台,而且在国内访问速度会不错,Gitee缺点是每次修改博客后都需要手动更新才会生效,而Coding像Github那样可以自动更新,Coding也支持设置为手动部署。另外Gitee目前需要花钱购买Gitee Pages Pro服务才支持自定义域名,而Coding和Github一样是可免费绑定自己的域名的。
1 将静态网页部署到Gitee上1.1 在Gitee上创建仓库  这篇文章假定你已经知道如何使用hexo,并且能成功在本地生成和预览静态网页了,如果不清楚可以先去阅读我的另一篇博客《自娱自乐,我的博客(一)——hexo + github pages ...
自娱自乐,我的博客(四)——Hexo文章管理
自娱自乐,我的博客(四)——Hexo文章管理前言:阅读这篇文章我能学到什么?  通过Hexo搭建一个博客网站并不算难,网站搭建好后如何规范的管理我们的文章,如何维护它们也是一个问题。
1 资源文件和文章的存储位置  为了对文章进行分类管理,我们可以在Hexo根目录的source/_posts文件夹下手动创建文件夹将md文件放在文件夹里,但是对应的资源文件比如图片全部放在source/images文件夹下显得过于杂乱,最好是对应上md文件。为了实现分类管理需要修改_config.yml文件的配置。
1post_asset_folder: true
  配置之后可以在Hexo根目录通过执行指令
1hexo new post title
  之后会自动在source/_posts目录下创建一个title文件夹,该文件夹内有title.md文件和title文件夹,其中同名文件夹是用来存储图片了。 &a ...
自娱自乐,我的博客(二)——Butterfly主题与博客美化
自娱自乐,我的博客(二)——Butterfly主题与博客美化前言:阅读这篇文章我能学到什么?  上一篇讲了如何搭建个人博客,我们期望博客更美观和个性化,因此之后的几篇文章都会讲解如何去美化我们的博客。即便是程序员懂网页前端的只是一小部分,另外也是使我们更简单容易的维护博客,通常我们都会选择一个喜欢的主体并在此基础上进行个性化设置。我推荐Butterfly作为博客主题,非常美观且配置丰富。
1 更换博客主题  Butterfly主题你可以在Hexo官网的主题页搜索找到它,或者直接访问Butterfly 主题的首页,你可以先一览它的“美貌”,并且里面有关于该主题的使用教程。
1.1 安装Butterfly  在你的hexo工作的根目录里执行cmd指令下载安装Butterfly主题。
1git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
1.2 配置But ...
Python3基础篇(十一)——import模块
Python3基础篇(十一)——import模块前言:阅读这篇文章我能学到什么?  import关键字用于导入现有的模块,增强了代码的重用性。可以和from和as关键字一起使用。这篇文章将为你介绍import的几种用法。
1 import [ModularName]1.1 导入一个模块  为了实现代码的重用性,方便将来或他人使用,我们通常会将代码进行模块化。而Python3中提供了import关键字导入现成的模块,导入的模块即可以是开发者自己实现的,也可以是第三方库。python提供了丰富的第三方库,使得大多数功能都不需要自己去重复实现。  代码示例:  TestA.py
1234567891011TestA_Variable = "TestA Variable"class TestA_Class: def __init__(self, Variable): self.Variable = Variabl ...
Python3进阶篇(三)——多线程
Python3进阶篇(三)——多线程前言:阅读这篇文章我能学到什么?  一个应用程序就相当于一个进程,该进程创建时就具有一个主线程(内核线程),主线程可以创建其他子线程(用户线程),当存在子线程时就形成了多线程。多线程可以使得运行程序在宏观上同时执行多个任务,在一定程度上加快软件执行速度。线程的操作涉及到:线程创建、同步、退让、抢占等。请阅读这篇文章学习它。
1 了解并创建线程1.1 了解线程  当进程被创建时,操作系统将会为它创建一个主线程,也即内核线程,注意它是操作系统创建的。用户可以通过主线程创建子线程,或称用户线程。不论主线程还是子线程,每个独立的线程都有一个程序的入口,对应在代码中就是入口函数。一个进程可以有多个线程,线程是进程的执行单元。宏观上各个线程可以是同时执行的,微观上依然是CPU分时间片执行。Python3为我们提供了操作线程的类,这简化了线程开发的步骤。旧的线程模块是_thread,Python3提供了新的模块’threading’操作线程。
1.2 创建线程 &em ...
PySide2基础篇(十五)——QFileDialog运用
PySide2基础篇(十五)——QFileDialog运用前言:阅读这篇文章我能学到什么?  FileDialog被用于进行目录选择、单个文件选择、多个文件选择。下面讲解基本用法。
1 创建文件对话框1.1 选择目录  getExistingDirectory()方法可调用目录选择对话框,选定目录后该函数返回所选路径。  代码示例:
123456789101112from PySide2.QtWidgets import QApplication, QMainWindow, QFileDialogapp = QApplication([])MainWindow = QMainWindow()FileDialog = QFileDialog(MainWindow)FileDirectory = FileDialog.getExistingDirectory(MainWindow, "标题") #选择目录,返回选中的路径print(F ...
PySide2基础篇(十四)——QMessageBox运用
PySide2基础篇(十四)——QMessageBox运用前言:阅读这篇文章我能学到什么?  MessageBox在对话框编程中较常用,而Qt为我们提供了较多种MessageBox选择,有critical、warning、information、about、question几种。
1 创建MessageBox对话框  由于使用比较简单,所以不多作文字介绍。
1.1 critical  代码示例:
1234567891011from PySide2.QtWidgets import QApplication, QMainWindow, QMessageBoxapp = QApplication([])MainWindow = QMainWindow()MessageBox = QMessageBox()MessageBox.critical(MainWindow, "标题", "内容") #Critical对话 ...
PySide2基础篇(十三)——QToolBar和QStatusBar运用
PySide2基础篇(十三)——QToolBar和QStatusBar运用前言:阅读这篇文章我能学到什么?  前面降到了对话框的菜单栏,这篇继续讲对话框的工具栏和状态栏。它们也是设计对话框程序较常用的控件,想想我们用的IDE界面就能明白它们的重要性。
1 工具栏1.1 创建工具栏  工具栏就像菜单栏那样,它也是对多个控件组合的控件。我们可以给工具栏添加多个控件。我们尝试给主对话框创建一个工具栏控件,并给其添加几个按钮控件。  代码示例:
1234567891011121314151617181920212223from PySide2.QtWidgets import QApplication, QMainWindow, QToolBar, QPushButtonfrom PySide2.QtGui import QIconapp = QApplication([])MainWindow = QMainWindow()Icon = QIcon(".\png\Icon.i ...
PySide2基础篇(十二)——QMenuBar和QMenu运用
PySide2基础篇(十二)——QMenuBar和QMenu运用前言:阅读这篇文章我能学到什么?  每个对话框都可以设置一个菜单栏,菜单栏是分类管理按钮的最佳控件。请阅读这篇文章学学。
1 创建菜单栏和添加菜单项  我们尝试对主对话框添加菜单栏,并为菜单栏中添加菜单项。  代码示例:
12345678910111213141516171819202122from PySide2.QtWidgets import QApplication, QMainWindow, QMenuBar, QMenuapp = QApplication([])MainWindow = QMainWindow()MenuBar = MainWindow.menuBar() #获取主对话框的菜单栏MenuBar.resize(100, 20)MenuA = MenuBar.addMenu("MenuA") #给MenuBa ...