自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Keep It Simple, Stupid

新博客网址:https://ningto.com

  • 博客(399)
  • 资源 (24)
  • 收藏
  • 关注

原创 Material-UI FontIcon组件使用

material-ui是一款优秀的react组件库,目前在github上Star数已经达到了25759个。其中FontIcon组件包含了900多个系统图标,但是在使用的过程中你会发现图标显示不出来,解决方法如下:到这个地址https://fonts.gstatic.com/s/materialicons/v22/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY

2017-06-02 08:59:26 3268

原创 QtCharts源码编译安装

Qt Charts module provides a set of easy to use chart components. It uses the Qt Graphics View Framework, therefore charts can be easily integrated to modern user interfaces. Qt Charts can be used as QW

2017-04-14 21:46:17 4970 2

原创 nginx配置nodejs服务二级域名

目前有一个域名sanjiadian.net在它的基础上增加几个二级域名,通过二级域名访问新的nodejs服务。增加二级域名在阿里云中的域名服务中找到sanjiadian.net域名点击后面的解析,添加解析,tools,api,chat就是二级域名 nginx配置主域名指向端口为3000的nodejs服务,在nginx/conf.d下增加文件sanjiadian.conf(一定要使用conf后缀名)

2017-04-14 21:45:11 3884

转载 浏览器同源政策及其规避方法

浏览器同源政策及其规避方法浏览器安全的基石是”同源政策”(same-origin policy)。很多开发者都知道这一点,但了解得不全面。 本文详细介绍”同源政策”的各个方面,以及如何规避它。概述含义1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。 最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页”同源”。所谓”同源”指的是

2017-04-14 21:44:05 310

原创 简单实现网页登录框中的“记住我”

登录框中通常有一个“记住我”的checkbox按钮,它是用来记住当前用户输入的用户名和密码,下次用户再次登录的时候就不用重新输入直接点击登录就可以了(现在很多浏览器自身就带有这样的功能)。在公用电脑上勾选“记住我”是很危险的,在个人电脑上可以给用户提供很多方便。简单的实现使用Cookie就可以了。简单介绍一下Cookie和Session,详细参考:Cookie/Session机制详解Cookie机制

2017-04-14 21:43:02 11782 1

原创 C++获取输入法名字,调整输入法候选框位置

可以根据窗口布局或HKL获取输入名字,windows消息WM_INPUTLANGCHANGE的LPARAM就是HKL QString getImeNameFromHKL(HKL hkl) { const int BUF_LEN = 1024; wchar_t buf[BUF_LEN] = { 0 }; ImmGetIMEFileName(hkl, buf, BUF_LEN

2017-03-31 22:14:10 4808

原创 QComboBox item文字重叠

当给QComboBox设置行交替使用不同颜色后,两个相邻的item文字有重叠ui.comboBox->view()->setAlternatingRowColors(true);解决方法: 在Qt Designer中给comboBox的字体点大小设置为当前实际要展示的文字大小,默认为9,如果我们的文字要显示12px,将其改为12。

2017-03-31 22:12:05 1887

原创 windows判断窗口是否置顶、设置取消置顶、设置前景

判断窗口是否置顶 bool isWndTopMost(HWND hwnd) { return GetWindowLong(hwnd, GWL_EXSTYLE) & WS_EX_TOPMOST; }设置和取消置顶 void showWndTopMost(HWND hwnd){ RECT rect; GetWindowRect(hwnd

2017-03-31 22:11:33 8365 2

原创 QComboBox+QCompleter实现搜索自动匹配

搜索框默认隐藏起来,在界面上按Ctrl+F的时候打开搜索匹配输入框 m_speedSearch = new SpeedSearch(this); m_speedSearch->initData(QStringList() << "123" << "124" << "110" << "111"); m_speedSearch->hide(); QShortcut *shor

2017-03-31 22:11:06 5734 1

原创 Qt5.6支持高分辨率

Qt5.6及以后版本支持高分辨率很容易,在QApplication创建之前加入如下代码:QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 打开这个设置之后在高分辨率的电脑上注意: * 不要混用获取尺寸位置相关的windows API,否则你会发现GetWindowRect获取的窗口宽高和使用QWidget函数width(),he

2017-02-27 20:28:51 3335

原创 nodejs项目热更新 github webhooks

当本地有代码通过git上传后,服务器收到github代码变更的通知,然后调用脚本拉取(git pull)最新的代码,最后重启程序(如:pm2 restart myproject)。所以只要通过git push完成后部署的程序就会自动热更新。在github中对项目进行设置 打开项目,如:nodeblog点击Settings->Webhooks->Add webhook Palyload UR

2017-02-27 20:28:04 1701 1

原创 Windows下使用VS2013编译Qt5.6源码

用过Qt的QHBoxLayout,QVBoxLayout再看flex布局有很多相似之处,特别要注意的是flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto,后面两个是可以省略的。当一个容器没有显示出来时要注意它应该设置宽高或者flex值是不是大于0。<!DOCTYPE html><html lang="en"><head>

2017-02-27 20:23:00 3757

原创 react native Warning: setState(...): Can only update a mounted or mounting component.

碰到这个问题根据给的提示大概意思是:setState方法仅适用于一个安装好的或者正在安装的组件,出现这个提示通常意味着你在组件卸载之后调用了这个方法。 代码如下,这是一个倒计时组件:/** * Created by tujiaw on 2017/2/19. */import React, { Component } from 'react';import { Text, View,

2017-02-27 20:21:28 6111

原创 使用nginx配置nodejs服务进行反向代理

使用nginx配置nodejs服务进行反向代理 域名备案完成之后就可以使用自己的域名访问nodejs做的网站了。 我们使用nginx来配置这个反向代理,nginx安装完成之后,配置文件一般在这些目录中/usr/local/nginx/conf, /etc/nginx, or /usr/local/etc/nginx. 我的nginx配置文件在/etc/nginx目录下,打开nginx.con

2017-02-27 20:19:56 8800

原创 react-native run-android 慢

react-native run-android 慢react-native run-android中需要下载https://services.gradle.org/distributions/gradle-2.4-all.zip,这个过程很慢可以换个地址。文件所在路径 android -> gradle -> wrapper -> gradle-wrapper.properties将dist

2016-12-04 12:05:06 3124 1

原创 react native button 按钮

用react native自定义一个button按钮button代码,相应按下事件,设置获取disabled状态,设置获取显示文本import React, { Component } from 'react';import { AppRegistry, StyleSheet, Text, View, TouchableOpacity} from 'rea

2016-11-26 22:29:07 1525

转载 React Native android release 发布

安卓项目发布到真机上测试需要打包成apk。就介绍下打包流程:产生签名的key 该过程会用到keytool,开发过安卓的都应该接触过该东西。详细请见密钥和证书管理工具。 在项目的主目录中执行,最后一步输入“是”:keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysiz

2016-11-24 21:30:59 2006

原创 react Todo List

import React from 'react';import ReactDOM from 'react-dom';import App from './App';import './index.css';var TodoList = React.createClass({ getInitialState: function() { return {items: []}; }

2016-11-20 20:07:19 554

原创 libcurl windows编译,运行配置

编译 官方下载源码,找到winbuild目录。打开vs2013开发人员命令提示工具,编译debug版本:E:\cpp11\curl-7.51.0\winbuild>nmake /f Makefile.vc mode=static VC=12 DEBUG=yes 编译relase版本去掉DEBUG=yes就可以了; builds目录下找到生成的include和lib目录;使用 附加头文件目录

2016-11-03 21:57:31 4036

原创 fstream ifstream ofstream分块读写文件

// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <fstream>#include <algorithm>#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ const int BU

2016-11-03 15:42:41 2419

原创 nodejs爬虫GBK网页乱码

var http = require('http')var fs = require('fs')var cheerio = require('cheerio')var iconv = require('iconv-lite')function getUrl(url, handle) { http.get(url, (res) => { console.log(`stat

2016-10-16 14:41:47 2439

原创 C++11正则表达式

```// regex_replace example#include #include #include #include int main (){ std::string s ("there is a subsequence in the string\n"); std::regex e ("\\b(sub)([^ ]*)"); // matches words b

2016-10-12 21:21:39 719

原创 获取emoji网页的内容保存到本地

var http = require('http');var fs = require('fs');var cheerio = require('cheerio');var readof = require('readof');var url = "http://apps.timwhitlock.info/emoji/tables/unicode#block-4-enclo

2016-09-29 22:30:58 2146

原创 JavaScript DOM编程艺术笔记

增加onload回调 function addLoadEvent(func) { var oldOnload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window

2016-09-25 10:41:08 390

原创 electron demo

用electron框架做的一个demo程序,调用的数据来自showapi中的接口。入口main.js 在app on ready回调中初始化菜单,主窗口,托盘,主页面index.htmlconst electron = require('electron')const menuTemplate = require('./js/menu').templateconst trayTempl =

2016-08-07 12:05:36 3159

原创 Qt 大数据列表展示

Qt中使用QListWidget, QTableWidget,QTreeWidget(只考虑最大3层)自定义子widget来展示数据的时候,通常子widget的个数达到了上千加载展示就会很慢,而且很耗内存。原因是new出来的widget太多了。下面的解决方案希望能帮助你。原理: 其实一个列表展示给用户看的高度是很有限的不会超过一个屏幕的高度,而这个高度只需要很少的子widget就可以填充满,所以

2016-08-04 22:59:26 7258 7

原创 QWebView到QWebEngineView

vs2013中的Qt5插件从Qt Project Settings中没有能引入QWebEngineView和QWebChannel的模块,我们可以在vs2013中手动加入。 附加包含目录:(QTDIR)\include\QtWebEngineWidgets,(QTDIR)\include\QtWebEngineWidgets, (QTDIR)\include\QtWebChannel 附加依赖项

2016-07-30 22:17:15 16786 11

原创 QWebEngineView与js交互

Qt新版本使用QWebEngineView来展示html页面对QWebView不再进行维护了,QWebEngineView使用chromium内核将带来更好的用户体验。对QWebView感兴趣的可以参考:http://blog.csdn.net/tujiaw/article/details/50372892从QWebView到QWebEngineView,参考:http://blog.cs...

2016-06-12 21:11:50 28369 8

原创 使用photoshop将图片制作成圆形

只需要简单的几步就可以了,有图有真相 1. 用Photoshop打开图片,点击椭圆选择工具,按住Shift键用鼠标在图片上画出一个你想要的圆形; 2. 点击鼠标右键选择通过拷贝的图层,在图层中选中背景然后点击删除图层; 3. 点击透视裁剪工具,用鼠标选中圆形图像,调整大小使其刚刚能够完全覆盖,然后按回车键,大功告成保存成我们想要的格式就可以了。

2016-06-04 07:37:26 4549

原创 Atom过滤工程文件

Atom增加工程文件会显示所有文件在列表中,怎么过滤掉一些我们根本就不会去编辑的文件使用Atom增加工程目录会把目录下的所有文件都显示到工程中,但是有些文件其实我们不会去编辑的如:图片。通过下面两步就可以过滤掉:打开Settings,找到Ignored Names,如下: .git, .hg, .svn, .DS_Store, ._*, Thumbs.db在后面添加我们需要过滤的文件后缀,如过

2016-06-04 07:36:47 2005

原创 QFrame与QWidget的区别

从QWidget继承实现了一个自定义的widget,在设置样式表的时候发现没有生效,发现原来跟QFrame有关QFrame与QWidget的区别QFrame是基本控件的基类,QWidget是QFrame基类,关系如下: QPushButton,QLabel… -> QFrame -> QWidget我们经常会从QFrame或者QWidget继承然后自定义一个复杂的widget,在设置样式表的时

2016-06-04 07:35:33 50478 3

原创 介绍electron框架

这是一个整合了Node,Chromium,V8的一个框架,通过它可以使用JavaScript,HTML, CSS技术来开发桌面应用程序混合开发随着前端技术的发展,现在越来越多的桌面应用程序会嵌入一些Web技术来进行混合开发,好处当然是结合了web端和传统桌面软件各自的优点。常见的有使用开源的Chromium,Qt的QWebView以及最新的QWebEngineView。Electron 通过el

2016-06-04 07:34:47 7563

原创 方形图片使用QLabel显示成圆形

方形图片使用QLabel显示成圆形#ifndef MASKLABEL_H#define MASKLABEL_H#include <QLabel>class MaskLabel : public QLabel{public: MaskLabel(QWidget *parent=0);protected: void paintEvent(QPaintEvent *);};#end

2016-06-04 07:32:52 5576 1

转载 Javascript值拷贝与引用

先来看2014年阿里巴巴前端线上笔试题:var a = 1;var obj = { b: 2};var fn = function () {};fn.c = 3;function test(x, y, z) { x = 4; y.b = 5; z.c = 6; return z;}test(a, obj, fn);alert(a + obj.b

2016-05-05 17:31:36 1166 1

原创 std::sort strict weak ordering

std::sort strict weak ordering严格的弱序,即小于语义;在用std::sort的时候一定要注意比较函数:1.用小于或者大于号;2.如果两边相等应该return false;3.或者不确定的比较也应该return false;例如下面代码调试的时候会产生断言失败,relase环境下会造成crash,去掉等号就可以了。#inc

2016-04-22 14:41:48 669

原创 Promise用法例子

'use strict';function async(value) { return new Promise(function(resolve, reject) { var ms = Math.round(Math.random() * 1000); setTimeout(function() { console.log('wa

2016-04-19 17:29:11 4087

转载 打开pdf文件参数

例子:隐藏工具栏http://127.0.0.1:8080#toolbar=0You can open a PDF document with a command or URL that specifies exactly what to display (a nameddestination or specific page), and how to display it (using suc

2016-04-18 11:43:10 5117

原创 广播,net模块

当有新客户端连接上来时广播通知所有其他客户端;当有客户端关闭时也通知给其他客户端并且从广播列表中移除。/** * Created by tujiaw on 15/8/14. */// 广播消息var events = require('events');var net = require('net');var channel = new events.EventEmitte

2016-04-16 22:43:55 444

原创 继承,监控目录

监控watch目录中的.h和.cpp后缀的文件,移动到process目录中。var events = require('events');var util = require('util');var fs = require('fs');var path = require('path');function Watcher(watchDir, processDir) { th

2016-04-16 22:40:43 427

原创 访问文件目录,文件

'use strict'var http = require('http');var fs = require('fs');var url = require('url');var path = require('path');var server = http.createServer(function(request, response) { var pathname = ur

2016-04-10 11:21:05 480

ntscreenshot_win10.zip

Qt截图工具 win10版本

2021-01-08

gowallpaper.exe

设置bing壁纸为桌面壁纸

2021-01-07

ntscreenshot

截图工具,源码:https://github.com/tujiaw/ntscreenshot

2021-01-06

emoji图片包

emoji图片包

2016-09-29

electron-v1.2.0-win32-x64

国外资源很难下载下来

2016-05-27

Visual_Assist_10.9.2073解决PYG解密小组弹框问题

visual assist x到期后解决PYG解密小组弹框问题

2016-02-14

xware-desktop_0.13.20141115_amd64.deb

在linux系统下,日常生活4个基本需求:办公软件 媒体播放 迅雷下载 QQ聊天,由于我不喜欢在linux下wine来运行exe程序,下面介绍实战用Xware Desktop实现迅雷下载,我分两种方法给大家介绍:第一种是作者介绍的比较复杂的模式,如下: 第二种是我自己分别为大家打包了32位和64位的deb包,大家只要下载DEB包安装,然后按照后面的使用说明就可以使用了: 简介: Xware Desktop的目标是提供与Windows平台上迅雷相当的功能。你可以这样认为: Xware Desktop是迅雷在Linux上的原生开源方案,无需Wine。 Xware Desktop是半官方半社区的迅雷:下载核心使用迅雷原版xware,界面使用开源的代码。 源码项目地址 https://github.com/Xinkai/XwareDesktop Ubuntu Kylin上编译安装说明如下: 编译环境 安装必备的软件。 sudo apt-get install git build-essential devscripts 下载源代码。 git clone git://github.com/Xinkai/XwareDesktop.git 这会在当前目录下生成一个名为XwareDesktop的子目录。 切换到源代码目录XwareDesktop。 cd XwareDesktop 打包 你需要切换到XwareDesktop的源代码目录。 列出缺失的编译依赖。 dpkg-checkbuilddeps 如果没有列出任何东西,跳过步骤2。 安装缺失的编译依赖。 sudo apt-get install <复制粘贴:上一步列出的缺失的编译依赖> 制作安装包。 dpkg-buildpackage 安装 回到图形化界面,在XwareDesktop的源代码目录的上级目录,你应该能找到名为xware-desktop_??????.deb的安装包文件, 双击它,按提示安装。 使用说明 第一次使用之前 启动前端,暂时不要登录。 设置下载文件夹。 文件->设置->挂载,点击添加,选择你的下载目的文件夹。点击确定。 注意: 永远把任务下载到X:\TDDOWNLOADS,不要下载到X:\下载或X:\。如果需要任务分类,请下载到X:\TDDOWNLOADS\音乐。 托管xwared并启动。 设置开机自动启动。 在文件->设置->启动与登录->xwared托管里选择由用户态systemd托管或者由用户态upstart托管,确定。 如果这两个选项都不能选,则选择简单的自动启动。 这样下次重启时,xwared会自动启动。 手动启动xwared。 因为上一步骤所做的操作需要下次启动才能生效,需要输入以下命令手动启动xwared。 systemd托管: systemctl --user start xwared upstart托管: start xwared 简单的自动启动: /opt/xware-desktop/xwared & 成功后,前端的左下角的xwared会变为绿色。 关闭xwared的方法。 在将来如果你需要关闭xwared,可以如下操作。 systemd托管: systemctl --user stop xwared upstart托管: stop xwared 简单的自动启动: 使用任务管理器,杀死名为xwared和EmbedThunderManager的进程 用迅雷账号登录。 设备激活。 稍等片刻,会出现一个添加设备的对话框。Xware Desktop会自动获取并填写激活码, 确认激活码自动填写后,点击激活按钮。激活过程应该是即时的。 浏览器扩展整合 Xware Desktop接受来自命令行的参数作为新任务的网址,格式为 xware-desktop http://www.website.com/file1 ftp://www.website.com/file2 ... 以Firefox上的Flashgot为例,打开其选项。添加一个新的下载器,程序设置为xware-desktop,参数设置为。 来自命令行的参数支持http,https,ftp,ed2k,magnet,flashget,qqdl,thunder等多种协议, 也同样支持本地的torrent文件。 ________________________________________________________________________________________________________华丽的分隔线,以上为复杂模式,以下为小白懒人模式,直接下载deb包安装就ok Xware Desktop 64位deb包下载地址:[url=http://pan.baidu.com/s/1pJFO93X]http://pan.baidu.com/s/1pJFO93X Xware Desktop 32位deb包下载地址:http://pan.baidu.com/s/1gdIgLu7 安装deb包后启动xware,仔细看使用说明部份 成功后的截图:

2015-09-19

window 管道

windows管道代码简单封装。

2014-09-04

C++.GUI.Qt.4编程(第二版)中文版1-5

C++.GUI.Qt.4编程(第二版)1-5 文件太大分割了几部分

2014-05-08

buffer应用缓冲区

buffer应用缓冲区 socket应用层

2013-07-30

MFC信息管理系统

MFC信息管理系统 毕业设计 SQL 数据库

2012-03-08

source insight3.5 注册码

很好的看代码的工具, 尤其看开源程序的时候很方便

2012-02-12

glib-2.30.2

glib-2.30.2源码, C语言进阶很好的资料

2012-02-03

Visual Assist X vc助手

Visual Assist X vc++助手

2011-12-15

我的emacs配置

将config-emacs改名为.emacs, 然后将.emacs和emacs-site文件夹放在用户目录下, 启用行号需在emacs中alt+x回车setnu-mode

2011-10-30

COM技术内幕.pdf 还比较清晰

《COM技术内幕》与《COM原理与应用》相对而言这本书要易懂些

2011-08-19

GDI+ SDK参考(翻译版本)

Microsoft Windows GDI+是为C/C++开发者提供的一个基于类的应用程序编程接口(API)。它使得程序可以同时在视频显示器和打印机上使用图形和格式化文本。基于Microsoft Win32的应用程序不能直接访问图形硬件,而是通过GDI+来协调设备驱动和程序动作的交互。GDI+同样支持Microsoft Win64。

2011-05-17

wtl81 支持vs2010

wtl81支持vs2010; 如AppWiz, 点击setup100.js运行即可, 如果你的vs2010是express版的话就点击setup100x.js。

2011-03-18

WTL81_9127

如果您打算写一个Win32 界面程序,我建议您在考虑MFC之前,先试试WTL.使用WTL来写您的代码, 程序将变得小巧些,也更有效率些. WTL8.1不需要更改可以支持vs2008

2011-02-26

C++必知必会(C++ Common Knowledge)

职业C++程序员必备常识 初学者登堂入室的阶梯 C++界20年经验结晶

2011-01-18

C++设计模式(用C++写的还有简单的介绍)

C++设计模式, 有完整的C++代码,还有作者的很多文字讲解,Gof23个设计模式是用C#讲解的, 对于不熟悉C#的人而言这个相对合适一些。

2011-01-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除