CListCtrl, 重载DrawItem 函数
定义你自己的类,继承CListCtrl
类,然后重载DrawItem
函数,并保证在属性中有LVS_OWNERDRAWFIXED
风格.
exp:
CListCtrlExt m_ListCtrl;
m_ListCtrl.ModifyStyle(0,LVS_OWNERDRAWFIXED,0);
void CListCtrlExt::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
int nItem=lpDIS->itemID;
if(nItem == -1)
return ;
CRect rcCol = lpDIS->rcItem;
CString sText;
CDC* pDC=CDC::FromHandle(lpDIS->hDC);
int nOldDCMode=pDC->SaveDC();
LVITEM item;
item.iItem = nItem;
item.iSubItem = 0;
item.mask = LVIF_IMAGE|LVIF_STATE;
item.stateMask = 0XFFFF;
GetItem(&item);
BOOL bSelected = item.state&LVIS_SELECTED;
COLORREF color=::GetSysColor(COLOR_WINDOW);
if(bSelected )
{
pDC->SetBkColor(::GetSysColor(COLOR_HIGHLIGHT));
pDC->SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));
color=::GetSysColor(COLOR_HIGHLIGHT);
}
else
{
pDC->SetBkColor(color);
pDC->SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
}
LV_COLUMN lvc;
lvc.mask=LVCF_FMT|LVCF_WIDTH;
rcCol.right = rcCol.left;
for(int nCol=0; GetColumn(nCol,&lvc); nCol++)
{
rcCol.left = rcCol.right;
rcCol.right = rcCol.left + GetColumnWidth(nCol);
HPEN hOldPen = (HPEN)::SelectObject(lpDIS->hDC, ::CreatePen(PS_SOLID, 1, RGB(0xc0,0xc0,0xc0)));
HBRUSH hOldBrush = (HBRUSH)::SelectObject(lpDIS->hDC, ::CreateSolidBrush(color));
::Rectangle(lpDIS->hDC, rcCol.left-1, rcCol.top-1, rcCol.right, rcCol.bottom);
::DeleteObject(SelectObject(lpDIS->hDC, hOldBrush));
::DeleteObject(SelectObject(lpDIS->hDC, hOldPen));
sText=MakeShortString(pDC,GetItemText(nItem,nCol),rcCol.Width());
pDC->DrawText(sText, -1, CRect::CRect(rcCol.left+3,rcCol.top,rcCol.right,rcCol.bottom-2), DT_LEFT);
}
pDC->RestoreDC(nOldDCMode);
}
CListView实现自画功能
在实现自画功能的时候, 注意要画的时候只能对一个CRect 里面来描画, 也就是说对一个item 所占的格子进行描画, 不能同时画这个区域,DrawItem 函数当画面有什么变化时都会自动调用.
// 機能:DrawItem 関数のオーバーライドので、リストビューの自画ことができる。 void CDiameterLogWndOne::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { CListCtrl& m_ListCtrl = GetListCtrl(); CRect rcItem(lpDrawItemStruct->rcItem); CRect RectOne,RectTwo,RectThr,RectFour,RectFive,r; CString str,sTextTwo; int nCount = m_RecvIP.size(); CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC); int nSavedDC = pDC->SaveDC();
/* CPen Pen(PS_SOLID, 1, RGB(0,0,0)), *pOldPen; CPen Pen2(PS_SOLID, 1, RGB(255,0,0)); pOldPen = pDC->SelectObject(&Pen); pDC->SelectStockObject(NULL_BRUSH);*/
int nItem = lpDrawItemStruct->itemID; LVITEM item; ZeroMemory ( &item, sizeof(LVITEM) ); item.iItem = nItem; item.iSubItem = 0; item.mask = LVIF_IMAGE|LVIF_STATE; item.stateMask = 0XFFFF;
m_ListCtrl.GetItem(&item);// 得到当前的item. BOOL bSelected = item.state&LVIS_SELECTED;// 是否被光标选中
COLORREF color=::GetSysColor(COLOR_WINDOW); DWORD dw = m_ListCtrl.GetItemData(nItem) ;
DrawText(pDC,m_ListCtrl,nItem,nCount,dw);
DrawLine(pDC,m_ListCtrl,nItem,dw);
DrawClickColor(pDC,m_ListCtrl,nItem,bSelected); /* CBrush br1, br2, *pbrOld; br1.CreateSolidBrush(RGB(0,0,0)); br2.CreateSolidBrush(RGB(255,0,0)); pbrOld = pDC->SelectObject(&br1); */ // この箭頭の描画 ARROWSTRUCT a;
// この箭頭の属性 //setup arrows a.nWidth = 10; a.fTheta = 0.5f; a.bFill = true;
PaintArrowColor(pDC,m_ListCtrl,a,nCount,nItem,dw); // PaintArrow(pDC, m_ListCtrl,a,nCount); // pOldPen = pDC->SelectObject(&Pen2); // pbrOld = pDC->SelectObject(&br2);
// pDC->SelectObject(pOldPen); }
// 機能:シーケンスウインドウには各信号の信号名と信号タイプを表示する。 void CDiameterLogWndOne::DrawText(CDC *pDC, CListCtrl &m_ListCtrl, int nItem, int nCount, int dw) { CRect RectOne,RectTwo,RectThr; COLORREF color=::GetSysColor(COLOR_WINDOW); // SendIPAddress とSendIPPort の描画領域計算 m_ListCtrl.GetItemRect ( nItem, RectOne, LVIR_LABEL ); CString sTextOne = m_ListCtrl.GetItemText ( nItem, 0); //SendIPAddress とSendIPPort のtext の描画 if(sTextOne.GetLength() != 0) { pDC->DrawText(sTextOne,RectOne,DT_END_ELLIPSIS | DT_LEFT ); } else { pDC->DrawText(_T(""),RectOne,DT_END_ELLIPSIS | DT_LEFT ); } //SendIPPort の下縦線を描画する if(nItem > 1) { pDC->MoveTo(RectOne.left + LINE_VERTLINE, RectOne.top); pDC->LineTo(RectOne.left + LINE_VERTLINE, RectOne.bottom); } for(int i = 0 ; i < nCount ; i ++) { // RecVIPAddress とRecvIPPort の描画領域計算 m_ListCtrl.GetSubItemRect(nItem,i+2,LVIR_LABEL,RectTwo); CString sText = m_ListCtrl.GetItemText ( nItem, i+2); // RecvIPAddress とRecvIPPort のtext の描画 if(sText.GetLength() != 0) { pDC->DrawText(sText,RectTwo,DT_END_ELLIPSIS | DT_LEFT ); } //RecvIPPort の下縦線を描画する if(nItem > 1) { pDC->MoveTo(RectTwo.left + LINE_VERTLINE, RectTwo.top); pDC->LineTo(RectTwo.left + LINE_VERTLINE, RectTwo.bottom); } } if(dw == ITEMCOLOR_CHANGE) { // 要求された色で色付きのアイテムを塗りつぶします pDC->SetBkColor(RGB(255,255,255)); pDC->SetTextColor(RGB(255,0,0)); color=::GetSysColor(COLOR_HIGHLIGHT); } else { // 要求された色で色付きのアイテムを塗りつぶします pDC->SetBkColor(color); pDC->SetTextColor(RGB(0,0,0)); } // CommandName の描画領域計算 m_ListCtrl.GetSubItemRect(nItem,1,LVIR_LABEL,RectThr); CString sTextTwo = m_ListCtrl.GetItemText ( nItem, 1); //CommandName の文本の描画 if(!sTextTwo.IsEmpty() && sTextTwo.GetLength() != 0) { pDC->DrawText(sTextTwo,RectThr,DT_END_ELLIPSIS | DT_CENTER ); }
pDC->SetBkColor(color); pDC->SetTextColor(RGB(0,0,0)); }
// 機能:マウスにて左クリックした際に、パラメータウインドウには選択した信号名の内容を表示する。 void CDiameterLogWndOne::OnClick(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください NMLVCUSTOMDRAW* pLVCD = reinterpret_cast( pNMHDR ); *pResult = 0; int nItem = static_cast( pLVCD->nmcd.dwItemSpec ); CDC* pDC = CDC::FromHandle ( pLVCD->nmcd.hdc );
int flag = 0; int nIndex = 0; int nChange;
CRect r;
POINT pt; int i;
GetCursorPos(&pt); CRect rect; CListCtrl& theCtrl = GetListCtrl(); theCtrl.GetWindowRect(rect);
CDC* pDCOne = theCtrl.GetDC(); /* // 方法 一 int index; int n,n0,n1; n0=theCtrl.GetTopIndex(); n1=theCtrl.GetItemCount(); n1+=n0; for(n=n0;n<=n1;n++) { //ListCtrl 中で選中Item を確認する if(theCtrl.GetItemState(n,LVIS_SELECTED)==LVIS_SELECTED) index=n; } */ /* // 方法 二 POSITION pos = theCtrl.GetFirstSelectedItemPosition(); int m_nIndex = theCtrl.GetNextSelectedItem(pos); // get the item be selected */ // 方法 三 pt.x-=rect.left; pt.y-=rect.top; //ListCtrl 中で選中Item を確認する i= theCtrl.HitTest(CPoint(pt)); CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd(); CDiameterLogWndTwo *pView = (CDiameterLogWndTwo *)pFrame->m_wndSplitter.GetPane(1, 0);
int nCount = m_ALLCommandName.size(); for(int k = 0 ; k < nCount ; k ++) { if(i == (k+1) * 4) { for(int j = 0 ; j < m_ClickNumber.size() ; j ++) { if(i == m_ClickNumber[j] ) { nIndex = i / 4 - 1; TRACE(_T("%d/n"),nIndex); pView->ShowFocus(nIndex,j); flag = 1; } } if(flag == 0) { TRACE(_T("%d/n"),k); pView->ShowMessage(k,m_nClickCount); m_nClickCount ++ ; m_ClickNumber.push_back((k+1) * 4); } flag = 0; // m_ClickNumber.push_back((k+1) * 4); } } // ソーティングする for(k = 0 ; k < m_ClickNumber.size(); k ++) { for(int j = k ; j < m_ClickNumber.size() - 1 ; j ++) { if(m_ClickNumber[j] > m_ClickNumber[j + 1]) { nChange = m_ClickNumber[j]; m_ClickNumber[j] = m_ClickNumber[j + 1]; m_ClickNumber[j + 1] = nChange; } } }
}
最后在保存到html 里面, 注意 语法是用于保存txt 里面的内容原封不动的放到html 里面, 还要注意用: 来控制画面的大小
通过处理NM_CUSTOMDRAW ,可以实现你的功能!但是NM_CUSTOMDRAW 在Class Wizard 中有可能看不到,不用管他,直接按照小面的方法添加处理过程即可! 1. 在消息映射表中 BEGIN_MESSAGE_MAP(CIHISSERVERView, CListView) //{{AFX_MSG_MAP(CIHISSERVERView) ... ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw) ... //}}AFX_MSG_MAP // Standard printing commands END_MESSAGE_MAP() 2. 在头文件中 afx_msg void OnCustomDraw(NMHDR*, LRESULT*); 3. 在cpp 文件中 void CIHISSERVERView::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult) { // Contains information specific to an NM_CUSTOMDRAW // notification message sent by a list-view control. // mean:draw each item.set txt color,bkcolor.... NMLVCUSTOMDRAW* pLVCD = (NMLVCUSTOMDRAW*)(pNMHDR); // Take the default processing unless we set this to something else below. *pResult = CDRF_NEWFONT; // First thing - check the draw stage. If it's the control's prepaint // stage, then tell Windows we want messages for every item. if ( pLVCD->nmcd.dwDrawStage==CDDS_PREPAINT) { *pResult = CDRF_NOTIFYITEMDRAW; } // This is the notification message for an item. We'll request // notifications before each subitem's prepaint stage. else if ( pLVCD->nmcd.dwDrawStage==CDDS_ITEMPREPAINT ) { COLORREF m_crTextBk , m_clrText; int nItem = static_cast (pLVCD->nmcd.dwItemSpec);
// 判断使ListCtrl 不同颜色现实的条件 CListCtrl &m_list = GetListCtrl(); CString str1 = m_list.GetItemText(nItem ,15);
bool bDBImplFail = false ; if (str1 == " 信息不祥") { m_crTextBk = RGB(255, 255, 0) ; m_clrText = RGB(128, 0, 128) ; } else { m_crTextBk = RGB(150, 255, 255); m_clrText = RGB(12,26,234); }
pLVCD->clrTextBk = m_crTextBk; pLVCD->clrText = m_clrText; *pResult = CDRF_DODEFAULT; } }
你可能感兴趣的:(behavior,notifications,printing,wizard,url,processing)
Git常用命令-修改远程仓库地址
猿大师
Linux Java git java
查看远程仓库地址gitremote-v返回结果originhttps://git.coding.net/*****.git(fetch)originhttps://git.coding.net/*****.git(push)修改远程仓库地址gitremoteset-urloriginhttps://git.coding.net/*****.git先删除后增加远程仓库地址gitremotermori
webpack图片等资源的处理
dmengmeng
需要的loaderfile-loader(让我们可以引入这些资源文件)url-loader(其实是file-loader的二次封装)img-loader(处理图片所需要的)在没有使用任何处理图片的loader之前,比如说css中用到了背景图片,那么最后打包会报错的,因为他没办法处理图片。其实你只想能够使用图片的话。只加一个file-loader就可以,打开网页能准确看到图片。{test:/\.(p
Some jenkins settings
SnC_
Jenkins连接到特定gitlabproject的特定branch我采用的方法是在pipeline的script中使用git命令来指定branch。如下:stage('Clonerepository'){steps{gitbranch:'develop',credentialsId:'gitlab-credential-id',url:'http://gitlab.com/repo.git'}}
python获取子进程返回值_Python对进程Multiprocessing子进程返回值
weixin_39752157
python获取子进程返回值
在实际使用多进程的时候,可能需要获取到子进程运行的返回值。如果只是用来存储,则可以将返回值保存到一个数据结构中;如果需要判断此返回值,从而决定是否继续执行所有子进程,则会相对比较复杂。另外在Multiprocessing中,可以利用Process与Pool创建子进程,这两种用法在获取子进程返回值上的写法上也不相同。这篇中,我们直接上代码,分析多进程中获取子进程返回值的不同用法,以及优缺点。初级用法
前端代码上传文件
余生逆风飞翔
前端 javascript 开发语言
点击上传文件import{ElNotification}from'element-plus'import{API_CONFIG}from'../config/index.js'import{UploadFilled}from'@element-plus/icons-vue'import{reactive}from'vue'import{BASE_URL}from'../config/index'i
2021-06-07 Do What You Are Meant To Do
春生阁
Don’tgiveupontryingtofindbalanceinyourlife.Sticktoyourpriorities.Rememberwhat’smostimportanttoyouanddoeverythingyoucantoputyourselfinapositionwhereyoucanfocusonthosepriorities,ratherthanbeingpulledbyt
使用python抽取post接口数据示例
中台小A
python python 开发语言
postman调用接口post接口https://inner-XXXXX.XXXXX.com/wXX/api/XXXXXctoryLake?user_key=XXXXXXXXXXXX,在boday的row里输入Jason格式的{"wasStartDay":"2024-09-03"}importrequestsurl='https://inner-XXXXX.XXXXX.com/wXX/api/XX
spring security中几大组件的作用和执行顺序
阿信在这里
java spring
springsecurity中几大组件的作用和执行顺序在SpringSecurity中,AuthenticationProvider、GroupPermissionEvaluator、PermissionEvaluator、AbstractAuthenticationProcessingFilter、DefaultMethodSecurityExpressionHandler和ManageSecu
Nginx从入门到实践(三)
听你讲故事啊
动静分离动静分离是将网站静态资源(JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。动静分离的一种做法是将静态资源部署在nginx上,后台项目部署到应用服务器上,根据一定规则静态资源的请求全部请求nginx服务器,达到动静分离的目标。rewrite规则Rewrite规则常见正则表达式Rewrite主要的功能就是实现URL的重写,Ngin
Scanpy源码浅析之pp.normalize_total
何物昂
版本导入Scanpy,其版本为'1.9.1',如果你看到的源码和下文有差异,其可能是由于版本差异。importscanpyasscsc.__version__#'1.9.1'例子函数pp.normalize_total用于Normalizecountspercell,其源代码在scanpy/preprocessing/_normalization.py我们通过一个简单例子来了解该函数主要功能:将一
使用input[type=file]遇上的一些问题
刘圣凯
项目遇到一个需要,如下image.png功能大致就是添加图片,展示出来,然后在用户点击提交的时候把图片传给后台,在和后台交涉之后,决定在用户选择图片之后转成formdata传给后台,后台返回一个url,提交的时候将url返回给后台/**转formdata*/varformdata=newFormData();formdata.append("file1",$("#pic")[0].files[0]
第三十一节:Vue路由:前端路由vs后端路由的了解
曹老师
1.认识前端路由和后端路由前端路由相对于后端路由而言的,在理解前端路由之前先对于路由有一个基本的了解路由:简而言之,就是把信息从原地址传输到目的地的活动对于我们来说路由就是:根据不同的url地址展示不同的页面内容1.1后端路由以前咱们接触比较多的后端路由,当改变url地址时,浏览器会向服务器发送请求,服务器根据这个url,返回不同的资源内容后端路由的特点就是前端每次跳转到不同url地址,都会重新访
python字符串相等怎么表示_python怎样判断字符串相等
weixin_39993989
python字符串相等怎么表示
python字符串如何判断相等1.is来判断groupName=params['groupName']##groupName的值是'url'reqBody['dim']=groupNameprint("reqBody_dim-SummaryListHandler",reqBody['dim'])##('reqBody_dim-SummaryListHandler',u'url')print("re
了解 UNPKG:前端开发者的包管理利器
小于负无穷
前端 javascript typescript css html5 node.js
在现代前端开发中,JavaScript包管理和模块化是至关重要的,而npm则是最流行的JavaScript包管理器之一。不过,随着前端项目复杂性的增加,有时候我们希望快速引入外部依赖,而无需本地安装和构建。此时,CDN(内容分发网络)成为了一种方便快捷的解决方案,而UNPKG就是这种方式中的佼佼者。什么是UNPKG?UNPKG是一个基于npm的内容分发网络(CDN),它允许开发者直接通过URL从n
若依后端正常启动但是uniapp移动端提示后端接口异常
大可大可抖
uni-app
pc端能用模拟器也能正常连接接口,手机端真机调试连不上接口解决:1.先看config.js的填自己的ip地址module.exports={//baseUrl:'https://vue.ruoyi.vip/prod-api',baseUrl:"http://192.168.101.5:8080",}2.网络环境问题(防火墙)点击属性然后选择专用
MacOS Catalina 从源码构建Qt6.2开发库之01: 编译Qt6.2源代码
捕鲸叉
QT macos c++ QT
安装xcode,cmake,ninjabrewinstallnodemac下安装OpenGL库并使之对各项目可见在macOS上安装OpenGL通常涉及到安装一些依赖库,如MGL、GLUT或者是GLEW等,同时确保LLVM的OpenGL框架和相关工具链的兼容性。以下是一个基本的安装步骤,你可以在终端中执行:安装Homebrew(如果还没有安装的话):/bin/bash-c"$(curl-fsSLht
ComfyUI中的sam模型国内下载方法
jayli517
ComfyUI python stable diffusion
was-node-suite-comfyui这个节点安装的时候,有它内部的config配置文件,里面其实给了一些下载地址,配置文件里是这么写的:"sam_model_vith_url":"https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth","sam_model_vitl_url":"https://dl.fba
基于Python执行lua脚本
xu-jssy
Python自动化脚本 python lua 自动化 rpa
一、依赖安装pipinstalllupa二、源码将lua文件存放在base_path路径,将lua文件名称(不包含后缀名)传递给lua_runner函数即可importmultiprocessingimportlupa#lua文件存放位置base_path='D:\\test\\lua'classLuaFuncion:#创建Lua运行时环境lua=lupa.LuaRuntime(unpack_re
python抓取网页内容401应该用哪个库_python3使用requests模块爬取页面内容入门
坂田月半
python的爬虫相关模块有很多,除了requests模块,再如urllib和pycurl以及tornado等。相比而言,requests模块是相对简单易上手的。通过文本,大家可以迅速学会使用python的requests模块爬取页码内容。1.Requests唯一的一个非转基因的PythonHTTP库,人类可以安全享用。官网:http://cn.python-requests.org/zh_CN/
python的request请求401_Python模拟HTTPS请求返回HTTP 401 unauthorized错误
weixin_39599372
Python模拟HTTPS请求返回HTTP401unauthorized错误开始是使用的httplib模块,代码如下:header={"Content-type":"application/json","Accept":"*/*"}params={‘source‘:‘en‘,‘target‘:‘es‘,‘text‘:match.group(1)}data=urllib.urlencode(para
安装 `privoxy` 将 Socks5 转换为 HTTP 代理
MonkeyKing.sun
网络
(base)shgbitai@shgbitai-C9X299-PGF:~/tools$curl-xhttp://127.0.0.1:1080https://registry-1.docker.io/v2/curl:(56)ProxyCONNECTaborted(base)shgbitai@shgbitai-C9X299-PGF:~/tools$curl-xhttps://127.0.0.1:108
uniapp 获取各种小程序code
灵魂清零
uniapp 小程序
各种小程序在进入小程序是都需要去获取code才能拿到基础信息,自己记录一下用uniapp开发小程序是获取微信小程序、百度小程序、头条小程序、支付宝小程序的codeVue.prototype.$global={appLogin(){returnnewPromise((resole,reject)=>{varthat=this;varwxLoginUrl=app.globalData.url+"/lo
【Python爬虫】百度百科词条内容
PokiFighting
数据处理 python 爬虫 开发语言
词条内容我这里随便选取了一个链接,用的是FBI的词条importurllib.requestimporturllib.parsefromlxmlimportetreedefquery(url):headers={'user-agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/80.
python下载pandas库镜像_下载pandas库
weixin_39791152
背景交代:在下载matplotlib库时,我已经将pip的下载源手动更改为清华的镜像,所以,如果有小伙伴在下载库遇到问题,如timeout,请先将下载源改为国内镜像,具体操作见我的另一篇文章:今天的主题是安装pandas库~首先,按田字格+R,打开cmd,输入:pipinstallpandas嗯,不出所料地报错了……主要原因:pip._vendor.urllib3.exceptions.ReadT
python语言爬虫爬取歌曲程序代码
EYYLTV
python 爬虫 android
importrequestssong_urls=[“http://music.163.com/song/media/outer/url?id=25795016.mp3”,“https://m703.music.126.net/20240915140140/670dfe5c0144991d4cb778d6662fd762/jd-musicrep-privatecloud-audio-public/o
python语言爬虫爬取歌曲代码X
EYYLTV
python 爬虫 java
importrequestssong_urls=[“https://m804.music.126.net/20240915142147/4e01caa69abda60b165e185607805ee1/jdyyaac/obj/w5rDlsOJwrLDjj7CmsOj/30379084686/b56a/dbd5/39fc/792d87f5d7014bb78547ec3804eeaac5.m4a?au
python之requests模块详解
Vibe~
python语言 python 爬虫
目录requests使用requests请求方法requests响应对象属性Requests模块是一个用于网络请求的模块,主要用来模拟浏览器发请求。其实类似的模块有很多,比如urllib,urllib2,httplib,httplib2,他们基本都提供相似的功能。但是这些模块都复杂而且差不多过时了,requests模块简单强大高效,使得其在众多网络请求模块中脱引而出。requests使用环境安装:
Python必备库大全,建议留用
2401_84010176
程序员 python 开发语言
urllib-网络库(stdlib)。requests-网络库。grab–网络库(基于pycurl)。pycurl–网络库(绑定libcurl)。urllib3–PythonHTTP库,安全连接池、支持文件post、可用性高。httplib2–网络库。RoboBrowser–一个简单的、极具Python风格的Python库,无需独立的浏览器即可浏览网页。MechanicalSoup-一个与网站自动
Java url转MultipartFile inputStream转File file转multipartFile
Abel_JiaWei
java
Javaurl转MultipartFileinputStream转Filefile转multipartFile/***url转MultipartFile*@paramurl*@return*@throwsException*/publicstaticMultipartFileurlToMultipartFile(Stringurl)throwsException{Filefile=null;Mul
html加载界面发送ajax请求
足球数据分析
html ajax 前端
html加载界面发送ajax请求makeAjaxRequest();functionmakeAjaxRequest(){varxhr=newXMLHttpRequest();//创建一个新的XMLHttpRequest对象xhr.open('GET','yourUrlPath',true);//配置请求,设置请求类型、URL和是否异步xhr.send();//发送请求}
312个免费高速HTTP代理IP(能隐藏自己真实IP地址)
yangshangchuan
高速 免费 superword HTTP代理
124.88.67.20:843
190.36.223.93:8080
117.147.221.38:8123
122.228.92.103:3128
183.247.211.159:8123
124.88.67.35:81
112.18.51.167:8123
218.28.96.39:3128
49.94.160.198:3128
183.20
pull解析和json编码
百合不是茶
android pull解析 json
n.json文件:
[{name:java,lan:c++,age:17},{name:android,lan:java,age:8}]
pull.xml文件
<?xml version="1.0" encoding="utf-8"?>
<stu>
<name>java
[能源与矿产]石油与地球生态系统
comsci
能源
按照苏联的科学界的说法,石油并非是远古的生物残骸的演变产物,而是一种可以由某些特殊地质结构和物理条件生产出来的东西,也就是说,石油是可以自增长的....
那么我们做一个猜想: 石油好像是地球的体液,我们地球具有自动产生石油的某种机制,只要我们不过量开采石油,并保护好
类与对象浅谈
沐刃青蛟
java 基础
类,字面理解,便是同一种事物的总称,比如人类,是对世界上所有人的一个总称。而对象,便是类的具体化,实例化,是一个具体事物,比如张飞这个人,就是人类的一个对象。但要注意的是:张飞这个人是对象,而不是张飞,张飞只是他这个人的名字,是他的属性而已。而一个类中包含了属性和方法这两兄弟,他们分别用来描述对象的行为和性质(感觉应该是
新站开始被收录后,我们应该做什么?
IT独行者
PHP seo
新站开始被收录后,我们应该做什么?
百度终于开始收录自己的网站了,作为站长,你是不是觉得那一刻很有成就感呢,同时,你是不是又很茫然,不知道下一步该做什么了?至少我当初就是这样,在这里和大家一份分享一下新站收录后,我们要做哪些工作。
至于如何让百度快速收录自己的网站,可以参考我之前的帖子《新站让百
oracle 连接碰到的问题
文强chu
oracle
Unable to find a java Virtual Machine--安装64位版Oracle11gR2后无法启动SQLDeveloper的解决方案
作者:草根IT网 来源:未知 人气:813标签:
导读:安装64位版Oracle11gR2后发现启动SQLDeveloper时弹出配置java.exe的路径,找到Oracle自带java.exe后产生的路径“C:\app\用户名\prod
Swing中按ctrl键同时移动鼠标拖动组件(类中多借口共享同一数据)
小桔子
java 继承 swing 接口 监听
都知道java中类只能单继承,但可以实现多个接口,但我发现实现多个接口之后,多个接口却不能共享同一个数据,应用开发中想实现:当用户按着ctrl键时,可以用鼠标点击拖动组件,比如说文本框。
编写一个监听实现KeyListener,NouseListener,MouseMotionListener三个接口,重写方法。定义一个全局变量boolea
linux常用的命令
aichenglong
linux 常用命令
1 startx切换到图形化界面
2 man命令:查看帮助信息
man 需要查看的命令,man命令提供了大量的帮助信息,一般可以分成4个部分
name:对命令的简单说明
synopsis:命令的使用格式说明
description:命令的详细说明信息
options:命令的各项说明
3 date:显示时间
语法:date [OPTION]... [+FORMAT]
eclipse内存优化
AILIKES
java eclipse jvm jdk
一 基本说明 在JVM中,总体上分2块内存区,默认空余堆内存小于 40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。 1)堆内存(Heap memory):堆是运行时数据区域,所有类实例和数组的内存均从此处分配,是Java代码可及的内存,是留给开发人
关键字的使用探讨
百合不是茶
关键字
//关键字的使用探讨/*访问关键词private 只能在本类中访问public 只能在本工程中访问protected 只能在包中和子类中访问默认的 只能在包中访问*//*final 类 方法 变量 final 类 不能被继承 final 方法 不能被子类覆盖,但可以继承 final 变量 只能有一次赋值,赋值后不能改变 final 不能用来修饰构造方法*///this()
JS中定义对象的几种方式
bijian1013
js
1. 基于已有对象扩充其对象和方法(只适合于临时的生成一个对象):
<html>
<head>
<title>基于已有对象扩充其对象和方法(只适合于临时的生成一个对象)</title>
</head>
<script>
var obj = new Object();
表驱动法实例
bijian1013
java 表驱动法 TDD
获得月的天数是典型的直接访问驱动表方式的实例,下面我们来展示一下:
MonthDaysTest.java
package com.study.test;
import org.junit.Assert;
import org.junit.Test;
import com.study.MonthDays;
public class MonthDaysTest {
@T
LInux启停重启常用服务器的脚本
bit1129
linux
启动,停止和重启常用服务器的Bash脚本,对于每个服务器,需要根据实际的安装路径做相应的修改
#! /bin/bash
Servers=(Apache2, Nginx, Resin, Tomcat, Couchbase, SVN, ActiveMQ, Mongo);
Ops=(Start, Stop, Restart);
currentDir=$(pwd);
echo
【HBase六】REST操作HBase
bit1129
hbase
HBase提供了REST风格的服务方便查看HBase集群的信息,以及执行增删改查操作
1. 启动和停止HBase REST 服务 1.1 启动REST服务
前台启动(默认端口号8080)
[hadoop@hadoop bin]$ ./hbase rest start
后台启动
hbase-daemon.sh start rest
启动时指定
大话zabbix 3.0设计假设
ronin47
What’s new in Zabbix 2.0?
去年开始使用Zabbix的时候,是1.8.X的版本,今年Zabbix已经跨入了2.0的时代。看了2.0的release notes,和performance相关的有下面几个:
:: Performance improvements::Trigger related da
http错误码大全
byalias
http协议 javaweb
响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。
响应码分五种类型,由它们的第一位数字表示:
1)1xx:信息,请求收到,继续处理
2)2xx:成功,行为被成功地接受、理解和采纳
3)3xx:重定向,为了完成请求,必须进一步执行的动作
4)4xx:客户端错误,请求包含语法错误或者请求无法实现
5)5xx:服务器错误,服务器不能实现一种明显无效的请求
J2EE设计模式-Intercepting Filter
bylijinnan
java 设计模式 数据结构
Intercepting Filter类似于职责链模式
有两种实现
其中一种是Filter之间没有联系,全部Filter都存放在FilterChain中,由FilterChain来有序或无序地把把所有Filter调用一遍。没有用到链表这种数据结构。示例如下:
package com.ljn.filter.custom;
import java.util.ArrayList;
修改jboss端口
chicony
jboss
修改jboss端口
%JBOSS_HOME%\server\{服务实例名}\conf\bindingservice.beans\META-INF\bindings-jboss-beans.xml
中找到
<!-- The ports-default bindings are obtained by taking the base bindin
c++ 用类模版实现数组类
CrazyMizzz
C++
最近c++学到数组类,写了代码将他实现,基本具有vector类的功能
#include<iostream>
#include<string>
#include<cassert>
using namespace std;
template<class T>
class Array
{
public:
//构造函数
hadoop dfs.datanode.du.reserved 预留空间配置方法
daizj
hadoop 预留空间
对于datanode配置预留空间的方法 为:在hdfs-site.xml添加如下配置
<property>
<name>dfs.datanode.du.reserved</name>
<value>10737418240</value>
 
mysql远程访问的设置
dcj3sjt126com
mysql 防火墙
第一步: 激活网络设置 你需要编辑mysql配置文件my.cnf. 通常状况,my.cnf放置于在以下目录: /etc/mysql/my.cnf (Debian linux) /etc/my.cnf (Red Hat Linux/Fedora Linux) /var/db/mysql/my.cnf (FreeBSD) 然后用vi编辑my.cnf,修改内容从以下行: [mysqld] 你所需要: 1
ios 使用特定的popToViewController返回到相应的Controller
dcj3sjt126com
controller
1、取navigationCtroller中的Controllers
NSArray * ctrlArray = self.navigationController.viewControllers;
2、取出后,执行,
[self.navigationController popToViewController:[ctrlArray objectAtIndex:0] animated:YES
Linux正则表达式和通配符的区别
eksliang
正则表达式 通配符和正则表达式的区别 通配符
转载请出自出处:http://eksliang.iteye.com/blog/1976579
首先得明白二者是截然不同的
通配符只能用在shell命令中,用来处理字符串的的匹配。
判断一个命令是否为bash shell(linux 默认的shell)的内置命令
type -t commad
返回结果含义
file 表示为外部命令
alias 表示该
Ubuntu Mysql Install and CONF
gengzg
Install
http://www.navicat.com.cn/download/navicat-for-mysql
Step1: 下载Navicat ,网址:http://www.navicat.com/en/download/download.html
Step2:进入下载目录,解压压缩包:tar -zxvf navicat11_mysql_en.tar.gz
批处理,删除文件bat
huqiji
windows dos
@echo off
::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)
rem 指定待删除文件的存放路径
set SrcDir=C:/Test/BatHome
rem 指定天数
set DaysAgo=1
跨浏览器兼容的HTML5视频音频播放器
天梯梦
html5
HTML5的video和audio标签是用来在网页中加入视频和音频的标签,在支持html5的浏览器中不需要预先加载Adobe Flash浏览器插件就能轻松快速的播放视频和音频文件。而html5media.js可以在不支持html5的浏览器上使video和audio标签生效。 How to enable <video> and <audio> tags in
Bundle自定义数据传递
hm4123660
android Serializable 自定义数据传递 Bundle Parcelable
我们都知道Bundle可能过put****()方法添加各种基本类型的数据,Intent也可以通过putExtras(Bundle)将数据添加进去,然后通过startActivity()跳到下一下Activity的时候就把数据也传到下一个Activity了。如传递一个字符串到下一个Activity
把数据放到Intent
C#:异步编程和线程的使用(.NET 4.5 )
powertoolsteam
.net 线程 C# 异步编程
异步编程和线程处理是并发或并行编程非常重要的功能特征。为了实现异步编程,可使用线程也可以不用。将异步与线程同时讲,将有助于我们更好的理解它们的特征。
本文中涉及关键知识点
1. 异步编程
2. 线程的使用
3. 基于任务的异步模式
4. 并行编程
5. 总结
异步编程
什么是异步操作?异步操作是指某些操作能够独立运行,不依赖主流程或主其他处理流程。通常情况下,C#程序
spark 查看 job history 日志
Stark_Summer
日志 spark history job
SPARK_HOME/conf 下:
spark-defaults.conf 增加如下内容
spark.eventLog.enabled true spark.eventLog.dir hdfs://master:8020/var/log/spark spark.eventLog.compress true
spark-env.sh 增加如下内容
export SP
SSH框架搭建
wangxiukai2015eye
spring Hibernate struts
MyEclipse搭建SSH框架 Struts Spring Hibernate
1、new一个web project。
2、右键项目,为项目添加Struts支持。
选择Struts2 Core Libraries -<MyEclipes-Library>
点击Finish。src目录下多了struts