- 博客(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
xware-desktop_0.13.20141115_amd64.deb
2015-09-19
我的emacs配置
2011-10-30
GDI+ SDK参考(翻译版本)
2011-05-17
wtl81 支持vs2010
2011-03-18
WTL81_9127
2011-02-26
C++设计模式(用C++写的还有简单的介绍)
2011-01-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人