Qt实现TcpClient和TcpServer连接收发数据,TcpClent实现上位机给串口发送指令,没有什么问题了,可是让下位机做出相应的指令。
首先在TcpClient和TcpServer中的pro加入QT+=network。
界面设计:
接受指令设计:
tcpclient.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
#include
#include
class QTcpSocket;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QTcpSocket *tcpSocket;
QString currentForture;
quint16 blockSize;
private slots:
void newConnect();
void readMessage();
void displayError(QAbstractSocket::SocketError);
//void on_connectButton_clicked();
void on_connectpushButton_clicked();
};
#endif // MAINWINDOW_H
tcpclient.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
tcpSocket=new QTcpSocket();
connect(tcpSocket,SIGNAL(readyRead()),this,SLOT(readMessage()));
connect(tcpSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(displayError(QAbstractSocket::SocketError)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::newConnect()
{
//初始化数据大小信息为0
blockSize=0;
//取消已有的连接
tcpSocket->abort();
//tcpSocket->connectToHost(ui->hostlineEdit->text(),ui->portlineEdit_2->text().toInt());
tcpSocket->connectToHost(QHostAddress::LocalHost,4196);
}
void MainWindow::readMessage()
{
QByteArray block;
QDataStream in(tcpSocket);
//QDataStream out(&block,QIODevice::ReadWrite);
//设置数据流版本
in.setVersion(QDataStream::Qt_5_6);
//out.setVersion(QDataStream::Qt_5_6);
//如果是刚开始接受数据
if(blockSize==0)
{
if(tcpSocket->bytesAvailable()<(int)sizeof(quint16))
{
//将接收到的数据存放在变量中
in>>blockSize;
}
if(tcpSocket->bytesAvailable()>nextFortune;
if(nextFortune==currentForture)
{
QTimer::singleShot(0,this,&MainWindow::newConnect);
return;
}
currentForture=nextFortune;
//显示接收到的数据
qDebug()<messagelabel->setText(currentForture);
}
}
void MainWindow::displayError(QAbstractSocket::SocketError)
{
qDebug()<errorString();
}
//连接按钮
void MainWindow::on_connectpushButton_clicked()
{
newConnect();
}
发送指令设计:
server.h
#ifndef SERVER_H
#define SERVER_H
#include
#include
class QTcpServer;
namespace Ui {
class server;
}
class server : public QMainWindow
{
Q_OBJECT
public:
explicit server(QWidget *parent = 0);
~server();
private:
Ui::server *ui;
QTcpServer *tcpServer;
private slots:
void sendMessage();
};
#endif // SERVER_H
server.cpp
#include "server.h"
#include "ui_server.h"
#include
server::server(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::server)
{
//QHostAddress &address="10.20.15.101";
ui->setupUi(this);
tcpServer=new QTcpServer(this);
if(!tcpServer->listen(QHostAddress::LocalHost,4196))
{
qDebug()<<"错误"<errorString();
close();
}
connect(tcpServer,SIGNAL(newConnection()),this,SLOT(sendMessage()));
}
server::~server()
{
delete ui;
}
void server::sendMessage()
{
QByteArray block;
QDataStream out(&block,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_6);
out<<(quint16)0;
out<seek(0);
out<<(quint16)(block.size()-sizeof(quint16));
//获取已经建立的连接的套接字
QTcpSocket *clientConnection=tcpServer->nextPendingConnection();
connect(clientConnection,SIGNAL(disconnected()),clientConnection,
SLOT(deleteLater()));
clientConnection->write(block);
clientConnection->disconnectFromHost();
//发送数据
ui->label->setText("send message successful!!!");
}
你可能感兴趣的:(Qt)
以前开发MFC界面如何快速转成QT界面
广州视觉芯软件有限公司
mfc qt c++
将MFC界面快速转换为Qt界面可能需要进行一些手动工作,因为MFC和Qt是两个不同的界面框架,它们具有不同的设计和实现原理。但是,以下步骤可以帮助你快速进行转换:创建一个新的Qt项目:使用QtCreator创建一个新的Qt项目。分析MFC界面:仔细分析你的MFC界面,包括窗口、对话框、控件等的布局、样式和行为。重新设计界面:使用Qt的可视化设计器重新设计界面。在QtCreator的设计器中,你可以
谷歌浏览器驱动Chromedriver(114-120版本)文件以及驱动下载教程
pigerr杨
Python python chrome drivers
ChromeDriver官方网站GitHub||GoogleChromeLabs/chrome-for-testingChromeDriver113-125_JSONChromeforTestingavailability123-125zip白月黑羽Python基础|进阶|Qt图形界面|Django|自动化测试|性能测试|JS语言|JS前端|原理与安装
PyQt按钮点击触发事件
fightingwy
python
pyqt首先需要安装pyqt安装包我这边是pyqt5的安装包然后通过Qcheckbox创建关联窗口的checkbox,通过按钮绑定事件触发事件。btn.clicked.connect(self.push)btn1.clicked.connect(self.select_all)btn2.clicked.connect(self.select_none)btn=QPushButton(name,se
Qt中对主窗口的一些基本操作
徐kun按门铃
Qt学习 css c++
一,给主窗口添加背景我们在做Qt项目的时候,难免需要在主场口上面添加背景图片,一般有两种方法来实现这一功能,可以在主窗口上面粘贴一个很大的QLabel然后在QLabel上面绘制图片,一般不会这样做,另外一种放法我们就需要重写绘制事件函数。paintEvent事件是在窗口状态改变之后处罚的,窗口的状态改变,可以是大小改变,也可以是别的。如下:头文件:protected://只要窗口状态改变自动调用此
uniapp 使用mqtt后真机调试白屏?或者 WebSocket || WS is not a constructor
xiaoli_qidian
uni-app 前端
1.都说高版本mqtt不稳定,所有安装3.0的吧npmimqtt@32.把连接替换成功这个代码//#ifdefH5console.log('h5')client=mqtt.connect(`ws://120.25.155.46:8083/mqtt`,options)//#endif//#ifdefAPP-PLUSconsole.log('app')client=mqtt.connect(`wx:/
关于QT多界面切换
真的见不到了码
qt
1.新增一窗体文件,会自动生成ui1.cpp,ui1.h,ui1.ui这三个文件。可以进行设计,绑定ui中的控件与数据模型。比如ui->lable.setText(string);2.再增加一个UI文件,ui2,也会生成相应的,同上。3.在main.cpp文件中,创建一个ui1的对象a,a.show(),就会显示ui1,然后创建ui2的对象b,b.show(),就会显示ui2。关闭由close()
QT 常用模块介绍以及使用说明
我写代码菜如坤
qt 数据库
当学习QT编程时,掌握以下几个关键模块是非常重要的。下面是每个模块的简要说明及示例程序:QtWidgets模块:说明:QtWidgets模块包含用于创建传统桌面应用程序的UI控件。示例程序:#include#includeintmain(intargc,char*argv[]){QApplicationapp(argc,argv);QWidgetwindow;window.setWindowTit
【智能家居入门2】(MQTT协议、微信小程序、STM32、ONENET云平台)
geeoni
智能家居 微信小程序 stm32
此篇智能家居入门与前两篇类似,但是是使用MQTT协议接入ONENET云平台,实现微信小程序与下位机的通信,这里相较于使用http协议的那两篇博客,在主程序中添加了独立看门狗防止程序卡死和服务器掉线问题。后续还有使用MQTT协议连接MQTT服务器的智能家居项目。前言一、硬件模块二、连接服务器测试三、两个协议的对比分析1、代码结构上:2、获取服务器数据上:3、架构上:四、下位机主要代码1、接收并解析云
大数据毕设 图像识别-人脸识别与疲劳检测 - python opencv
fawubio_A
python 算法
文章目录0前言1课题背景2Dlib人脸识别2.1简介2.2Dlib优点2.3相关代码2.4人脸数据库2.5人脸录入加识别效果3疲劳检测算法3.1眼睛检测算法3.2打哈欠检测算法3.3点头检测算法4PyQt54.1简介4.2相关界面代码0前言这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师
QT运行错误码:DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x800c000d ()
老男孩之百凉上该
qt5
出现这个错误码:就是url绝对地址出错了,解决办法就是去检查自己播放视频的路径!运行错误:运行正确:虽然我看不出什么问题,但是解决了,
C++/QT获取、连接wifi
weixin_40587266
c++ c++ qt wifi windows
C++/QT获取、连接wifi操作wifi的库#include#pragmacomment(lib,"wlanapi.lib")#pragmacomment(lib,"ole32.lib")获取wlan的handle、接口信息InterfaceInfoWlanOpenHandleWlanEnumInterfacesHANDLEhClient=NULL;DWORDdwMaxClient=2;DWOR
Kalman滤波参数、调整原则
Terry Cao 漕河泾
VSLAM 人工智能 算法
1.Q、P、R关系P的迭代为P=QTPQ;R为观测的协方差;状态延时高,说明收敛速度慢。估计参数P越大,收敛的越快。测量误差R越小,收敛的越快。调整这两个参数即可,从状态更新上说,测量误差越小,估计参数误差越大,说明我们越相信测量值,自然收敛的快。缺点就是会让系统变化过快,如果测量值更加不准,则精度会下降,系统不够稳定。2.K与Q、R关系k~Q/(R+Q)P0/(Q+R),收敛的快慢程度。总结下自
Qt应用开发(安卓篇)——安卓广播机制
波塞冬~
Qt5从入门到精通-应用开发 qt android c++
一、前言在Android的开发中,我们的程序需要得到网络状态变化、电池状态、屏幕状态、电池、系统启动完成、U盘等外设接入状态、apk安装等这些信息,除了主动去找到这些节点的信息,还可以通过安卓的广播机制被动去得到。Android广播机制包含三个基本要素:广播(Broadcast)-用于发送广播,广播接收器(BroadcastReceiver)-用于接收广播,关心内容(Intent)-用于保存广播相
qt 使用有参数的信号和槽
zhuyua
qt 开发语言
必须使用函数指针,否者报错未带参数的可以不用函数指针也可以用例子:使用函数指针调用带参数信号和槽void(Teacher::*teacherSignal)(QString)=&Teacher::hungry;void(Student::*studentSignal)(QString)=&Student::treat;connect(bhw,teacherSignal,twh,studentSign
QT进阶---------pro项目文件中的常用命令 (第三天)
锦亦之2233
QT进阶 qt 开发语言 c++
1、命令一决定exe可执行程序的生成路径CONFIG作用:不使用默认路径,方便移植CONFIG(debug,debug|release){DESTDIR=$$_PRO_FILE_PWD_/../../../debugXXXsystem}else{DESTDIR=$$_PRO_FILE_PWD_/../../../realeaseXXXsystem}是用于Qt项目的配置管理,其中涉及到了Qt的构建系
qt+ffmpeg 实现音视频播放(一)
码农客栈
音视频 Qt ffmpeg qt ffmpeg 音视频
一、ffmpeg下载官网:点击跳转二、模块介绍1.libavcodec:音视频编解码库,提供了多种编解码器,可以支持多种音视频格式的编解码操作。2.libavformat:音视频封装和解封装库,提供了多种封装格式的支持,可以读取和写入多种音视频文件格式。3.libavfilter:音视频过滤器库,提供了多种音视频过滤器,可以对音视频流进行各种处理,如添加水印、调整亮度、对比度等。4.libavde
Windows下QT数据库功能实现,可以UI界面进行数据交互(一)
liyu_xjy
qt 开发语言 数据库
Windows下QT数据库初始创建直接用QT自带的数据库模块,项目工程需要加一行:QT+=sql所需头文件:#include#include#include#include#include#include#include#include#include1.数据库连接的创建QSqlDatabase类提供了对数据库的访问。创建数据库对象,确定使用的数据库类型,用来创建连接:(数据库连接使用连接名来定义
QT keysight万用表 电阻采集
weixin_39926429
测控 c++语言 qt 数据库 开发语言
本文描述怎么在c++里能读取keysight的电阻。//前置条件:安装labiew软件和keysightIOLibrarySuit直接上代码:VisaManagervmanger("USB0::0x0957::0xB318::MY54190115::INSTR");//根据usb口标识初始化//上行的usb口标识,可在NIVISAInterativecontrol软件里拷贝出来vmanger.op
OpenCASCADE+Qt创建建模平台
欧特克_Glodon
OpenCASCADE开发教程 qt 开发语言 OpenCASCADE 三维建模
1、建模平台效果2、三维控件OCCWidget 将V3d_View视图与控件句柄绑定即可实现3d视图嵌入Qt中,为了方便也可以基于QOpenGLWidget控件进行封装,方便嵌入各种窗体使用并自由缩放。#ifndefOCCTWIDGET_H#defineOCCTWIDGET_H#include#include#include#include#include#include#include#inc
QTableWidget表头添加复选框实现全选功能
hss2799
Qt
QTableWidget表头添加复选框实现全选功能主要是CheckBoxHeaderView继承QHeaderView,重写paintSection函数voidcheckStatusChange(bool);是复选框是否选中的信号。详细代码如下:#ifndefCHECKBOXHEADERVIEW_H#defineCHECKBOXHEADERVIEW_H#include#include#includ
MongoDB聚合运算符:$eq
原子星
mongodb mongodb 数据库
文章目录语法举例$eq聚合运算符用于比较两个值并返回是否相等,如果相等返回true,否则返回false语法{$eq:[,]}$eq可以用来比较任何类型的值,针对不同的类型使用特定的BSON比较顺序。举例inventory集合有下列文档:{"_id":1,"item":"abc1","description":"product1","qty":300}{"_id":2,"item":"abc2","
QT在scrollArea中添加按钮,可滚动
你又食言了哦
qt 开发语言 c++
添加按钮可滚动,同时设置按钮大小,代码如下ui->setupUi(this);//在UI里面已经拖了一个scrollAreamyWidget=newQWidget(this);//新建一个QWidget放在scrollArea中QVBoxLayout*layout=newQVBoxLayout();//创建一个布局管理器放在QWidget中for(inti=0;iaddWidget(btn);//
Qt自定义标题栏的多屏适配
白杆杆红伞伞
Qt ide
标题栏自定义参考博客:https://blog.csdn.net/goforwardtostep/article/details/53494800多屏适配MyTitleBar类抽象定义了自定义标题栏,使用起来相对方便。但是在多屏情况下,窗口初次显示只能在主屏幕上,如果拖到其他屏幕上最大化,还会回到主屏。处理方式如下:获取当前屏幕的索引/*MyTitleBar的mouseMoveEvent函数*/v
qt自定义时间选择控件窗口
bangtan辉
qt
效果如图:布局如图:参考代码://DateTimeSelectWidget#ifndefDATETIMESELECTWIDGET_H#defineDATETIMESELECTWIDGET_H#include#includenamespaceUi{classDateTimeSelectWidget;}classDateTimeSelectWidget:publicQWidget{Q_OBJECTpu
Qt的信号槽机制
阳光开朗_大男孩儿
qt笔记 qt 开发语言
1.什么是元对象编译器和元对象系统?在开始讲信号槽之前,我们先了解下Qt的框架的核心组成部分,Qt的元对象编译器(MOC)和元对象系统是Qt框架的核心组成部分,它们使得Qt拥有了信号与槽机制、反射(introspection)和属性系统等强大的特性。下面分别解释这两个概念:1.1元对象编译器(MOC)元对象编译器是Qt特有的一个预处理器,它不是标准C++的一部分。MOC会处理使用了Qt的特殊宏(如
Qt 通过pdfium将网络上的pdf显示为图片
阿达和自己
C++ Qt qt pdf 开发语言
前言遇到个需求,就是在qt客户端显示服务器上的pdf文档,文档以base64格式返回给客户端。以下是实现方法:1、在pro文件增加以下代码:INCLUDEPATH+=$$PWD/PDFiumSDK/include/publicDEPENDPATH+=$$PWD/PDFiumSDK/include/publicLIBS+=-l$$PWD/PDFiumSDK/lib/x86/pdfium2、pdf转图
【智能家居入门1之环境信息监测】(STM32、ONENET云平台、微信小程序、HTTP协议)
geeoni
智能家居 stm32 微信小程序
作为入门本篇只实现微信小程序接收下位机上传的数据,之后会持续发布如下项目:①可以实现微信小程序控制下位机动作,真正意义上的智能家居;②将网络通讯协议换成MQTT协议再实现上述功能,此时的服务器也不再是ONENET,可以是公用的MQTT服务器也可以自己搭建或者租最终效果一、下位机模块测试与分析1、MQ系列传感器2、DHT11温湿度传感器3、Esp8266-01s4、oled液晶屏二、微信小程序三、项
关键信息标红
一支春夏、几多秋冬
QtDemo qt 文件处理 textedit 关键字查找 匹配
效果:导入一个文本文件到textEdit中,对指定的key关键字标红处理或者对关键字所在的行进行整行标红处理实现:#ifndefWIDGET_H#defineWIDGET_H#includeQT_BEGIN_NAMESPACEnamespaceUi{classWidget;}QT_END_NAMESPACEclassWidget:publicQWidget{Q_OBJECTpublic:Widge
Qt之excel 操作使用说明
weixin_30889885
大数据
学习背景:适合熟悉些qt开发,但是不是深入了解的开发者学习。具体实现(qt5.1版本),office2007Excel做验证,Win7(64位),如有讲解有误,欢迎斧正!一.简单介绍QAxObject是Qt提供的包装COM组件的类,通过COM通过COM操作使用QAxObject类,使用此类,需要在pro文件中添加"QT+=axcontainer"。二.与excelcom连接的方法1.#includ
Qt+libhv实现各类网络通信方式(TCP-UDP-HTTP-WebSocket)
码农飞飞
QT+QML qt tcp/ip udp libhv http websocket
文章目录TCP通信服务端客户端UDP通信服务端客户端HTTP通信服务端客户端WebSocket通信服务端客户端参考项目下载为了实现程序的跨进程和跨主机通信,我们通常会采用网络通信进行数据传输。常用的通信方式包括TCP/UDP、HTTP、WebSocket等,这些网络通信方式各有优劣有的是短连接有的是长连接,应用场景也有差异。在实际开发中我们需要掌握各种通信方式的实现方式来应对不同的场景,这里我们介
Java实现的简单双向Map,支持重复Value
superlxw1234
java 双向map
关键字:Java双向Map、DualHashBidiMap
有个需求,需要根据即时修改Map结构中的Value值,比如,将Map中所有value=V1的记录改成value=V2,key保持不变。
数据量比较大,遍历Map性能太差,这就需要根据Value先找到Key,然后去修改。
即:既要根据Key找Value,又要根据Value
PL/SQL触发器基础及例子
百合不是茶
oracle数据库 触发器 PL/SQL编程
触发器的简介;
触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。触发器和过程函数类似 过程函数必须要调用,
一个表中最多只能有12个触发器类型的,触发器和过程函数相似 触发器不需要调用直接执行,
触发时间:指明触发器何时执行,该值可取:
before:表示在数据库动作之前触发
[时空与探索]穿越时空的一些问题
comsci
问题
我们还没有进行过任何数学形式上的证明,仅仅是一个猜想.....
这个猜想就是; 任何有质量的物体(哪怕只有一微克)都不可能穿越时空,该物体强行穿越时空的时候,物体的质量会与时空粒子产生反应,物体会变成暗物质,也就是说,任何物体穿越时空会变成暗物质..(暗物质就我的理
easy ui datagrid上移下移一行
商人shang
js 上移下移 easyui datagrid
/**
* 向上移动一行
*
* @param dg
* @param row
*/
function moveupRow(dg, row) {
var datagrid = $(dg);
var index = datagrid.datagrid("getRowIndex", row);
if (isFirstRow(dg, row)) {
Java反射
oloz
反射
本人菜鸟,今天恰好有时间,写写博客,总结复习一下java反射方面的知识,欢迎大家探讨交流学习指教
首先看看java中的Class
package demo;
public class ClassTest {
/*先了解java中的Class*/
public static void main(String[] args) {
//任何一个类都
springMVC 使用JSR-303 Validation验证
杨白白
spring mvc
JSR-303是一个数据验证的规范,但是spring并没有对其进行实现,Hibernate Validator是实现了这一规范的,通过此这个实现来讲SpringMVC对JSR-303的支持。
JSR-303的校验是基于注解的,首先要把这些注解标记在需要验证的实体类的属性上或是其对应的get方法上。
登录需要验证类
public class Login {
@NotEmpty
log4j
香水浓
log4j
log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, HTML, DATABASE
#log4j.rootCategory=DEBUG, STDOUT, DAILYFILE, ROLLINGFILE, HTML
#console
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4
使用ajax和history.pushState无刷新改变页面URL
agevs
jquery 框架 Ajax html5 chrome
表现
如果你使用chrome或者firefox等浏览器访问本博客、github.com、plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发生了了改变。并且能够很好的支持浏览器前进和后退。
是什么有这么强大的功能呢?
HTML5里引用了新的API,history.pushState和history.replaceState,就是通过
centos中文乱码
AILIKES
centos OS ssh
一、CentOS系统访问 g.cn ,发现中文乱码。
于是用以前的方式:yum -y install fonts-chinese
CentOS系统安装后,还是不能显示中文字体。我使用 gedit 编辑源码,其中文注释也为乱码。
后来,终于找到以下方法可以解决,需要两个中文支持的包:
fonts-chinese-3.02-12.
触发器
baalwolf
触发器
触发器(trigger):监视某种情况,并触发某种操作。
触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete)
语法:
create trigger triggerName
after/before 
JS正则表达式的i m g
bijian1013
JavaScript 正则表达式
g:表示全局(global)模式,即模式将被应用于所有字符串,而非在发现第一个匹配项时立即停止。 i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写。 m:表示
HTML5模式和Hashbang模式
bijian1013
JavaScript AngularJS Hashbang模式 HTML5模式
我们可以用$locationProvider来配置$location服务(可以采用注入的方式,就像AngularJS中其他所有东西一样)。这里provider的两个参数很有意思,介绍如下。
html5Mode
一个布尔值,标识$location服务是否运行在HTML5模式下。
ha
[Maven学习笔记六]Maven生命周期
bit1129
maven
从mvn test的输出开始说起
当我们在user-core中执行mvn test时,执行的输出如下:
/software/devsoftware/jdk1.7.0_55/bin/java -Dmaven.home=/software/devsoftware/apache-maven-3.2.1 -Dclassworlds.conf=/software/devs
【Hadoop七】基于Yarn的Hadoop Map Reduce容错
bit1129
hadoop
运行于Yarn的Map Reduce作业,可能发生失败的点包括
Task Failure
Application Master Failure
Node Manager Failure
Resource Manager Failure
1. Task Failure
任务执行过程中产生的异常和JVM的意外终止会汇报给Application Master。僵死的任务也会被A
记一次数据推送的异常解决端口解决
ronin47
记一次数据推送的异常解决
需求:从db获取数据然后推送到B
程序开发完成,上jboss,刚开始报了很多错,逐一解决,可最后显示连接不到数据库。机房的同事说可以ping 通。
自已画了个图,逐一排除,把linux 防火墙 和 setenforce 设置最低。
service iptables stop
巧用视错觉-UI更有趣
brotherlamp
UI ui视频 ui教程 ui自学 ui资料
我们每个人在生活中都曾感受过视错觉(optical illusion)的魅力。
视错觉现象是双眼跟我们开的一个玩笑,而我们往往还心甘情愿地接受我们看到的假象。其实不止如此,视觉错现象的背后还有一个重要的科学原理——格式塔原理。
格式塔原理解释了人们如何以视觉方式感觉物体,以及图像的结构,视角,大小等要素是如何影响我们的视觉的。
在下面这篇文章中,我们首先会简单介绍一下格式塔原理中的基本概念,
线段树-poj1177-N个矩形求边长(离散化+扫描线)
bylijinnan
数据结构 算法 线段树
package com.ljn.base;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Set;
import java.util.TreeSet;
/**
* POJ 1177 (线段树+离散化+扫描线),题目链接为http://poj.org/problem?id=1177
HTTP协议详解
chicony
http协议
引言
Scala设计模式
chenchao051
设计模式 scala
Scala设计模式
我的话: 在国外网站上看到一篇文章,里面详细描述了很多设计模式,并且用Java及Scala两种语言描述,清晰的让我们看到各种常规的设计模式,在Scala中是如何在语言特性层面直接支持的。基于文章很nice,我利用今天的空闲时间将其翻译,希望大家能一起学习,讨论。翻译
安装mysql
daizj
mysql 安装
安装mysql
(1)删除linux上已经安装的mysql相关库信息。rpm -e xxxxxxx --nodeps (强制删除)
执行命令rpm -qa |grep mysql 检查是否删除干净
(2)执行命令 rpm -i MySQL-server-5.5.31-2.el
HTTP状态码大全
dcj3sjt126com
http状态码
完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅。HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0。你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request
asihttprequest上传图片
dcj3sjt126com
ASIHTTPRequest
NSURL *url =@"yourURL";
ASIFormDataRequest*currentRequest =[ASIFormDataRequest requestWithURL:url];
[currentRequest setPostFormat:ASIMultipartFormDataPostFormat];[currentRequest se
C语言中,关键字static的作用
e200702084
C++ c C#
在C语言中,关键字static有三个明显的作用:
1)在函数体,局部的static变量。生存期为程序的整个生命周期,(它存活多长时间);作用域却在函数体内(它在什么地方能被访问(空间))。
一个被声明为静态的变量在这一函数被调用过程中维持其值不变。因为它分配在静态存储区,函数调用结束后并不释放单元,但是在其它的作用域的无法访问。当再次调用这个函数时,这个局部的静态变量还存活,而且用在它的访
win7/8使用curl
geeksun
win7
1. WIN7/8下要使用curl,需要下载curl-7.20.0-win64-ssl-sspi.zip和Win64OpenSSL_Light-1_0_2d.exe。 下载地址:
http://curl.haxx.se/download.html 请选择不带SSL的版本,否则还需要安装SSL的支持包 2. 可以给Windows增加c
Creating a Shared Repository; Users Sharing The Repository
hongtoushizi
git
转载自:
http://www.gitguys.com/topics/creating-a-shared-repository-users-sharing-the-repository/ Commands discussed in this section:
git init –bare
git clone
git remote
git pull
git p
Java实现字符串反转的8种或9种方法
Josh_Persistence
异或反转 递归反转 二分交换反转 java字符串反转 栈反转
注:对于第7种使用异或的方式来实现字符串的反转,如果不太看得明白的,可以参照另一篇博客:
http://josh-persistence.iteye.com/blog/2205768
/**
*
*/
package com.wsheng.aggregator.algorithm.string;
import java.util.Stack;
/**
代码实现任意容量倒水问题
home198979
PHP 算法 倒水
形象化设计模式实战 HELLO!架构 redis命令源码解析
倒水问题:有两个杯子,一个A升,一个B升,水有无限多,现要求利用这两杯子装C
Druid datasource
zhb8015
druid
推荐大家使用数据库连接池 DruidDataSource. http://code.alibabatech.com/wiki/display/Druid/DruidDataSource DruidDataSource经过阿里巴巴数百个应用一年多生产环境运行验证,稳定可靠。 它最重要的特点是:监控、扩展和性能。 下载和Maven配置看这里: http
两种启动监听器ApplicationListener和ServletContextListener
spjich
java spring 框架
引言:有时候需要在项目初始化的时候进行一系列工作,比如初始化一个线程池,初始化配置文件,初始化缓存等等,这时候就需要用到启动监听器,下面分别介绍一下两种常用的项目启动监听器
ServletContextListener
特点: 依赖于sevlet容器,需要配置web.xml
使用方法:
public class StartListener implements
JavaScript Rounding Methods of the Math object
何不笑
JavaScript Math
The next group of methods has to do with rounding decimal values into integers. Three methods — Math.ceil(), Math.floor(), and Math.round() — handle rounding in differen