|

楼主 |
发表于 2018-6-30 20:17:33
|
显示全部楼层
本帖最后由 bigsize 于 2018-6-30 20:25 编辑
谢谢回复,是不是按钮响应事件是个线程,无法启动其他线程呢。代码,如下,希望能帮我看看。
- import win.ui;
- /*DSG{{*/
- mainForm = win.form(text="siteDownload";right=1259;bottom=969;border="none";mode="popup")
- mainForm.add(
- downloadButton={cls="button";text="下载列表";left=516;top=16;right=587;bottom=44;z=2};
- hint={cls="static";left=37;top=19;right=318;bottom=42;notify=1;transparent=1;z=5};
- listbox={cls="listbox";left=33;top=55;right=988;bottom=123;edge=1;items={};vscroll=1;z=3};
- urlButton={cls="button";text="提取链接列表";left=387;top=16;right=472;bottom=42;z=1};
- webHost={cls="edit";text="edit";left=2;top=128;right=1265;bottom=996;edge=1;multiline=1;z=4}
- )
- /*}}*/
- import web.blink.portable;//生成独立EXE
- import web.blink.jsFunction;//可选预定义全局JS函数
- import web.blink.form;//导入miniblink组件
- var mb = web.blink.form(mainForm.webHost);
- import wsock.tcp.simpleHttpServer;
- //wsock.tcp.simpleHttpServer.startUrl("/html/main.aardio")
- mainForm.hint.text = "页面加载中,请稍候";
- mb.go( "https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000");
- mb.onDocumentReady = function(isMainFrame,hFrame){
- mainForm.hint.text = "页面加载完毕,可以进一步处理";
- }
- //导出网页js脚本可以直接调用的external对象
- mb.external = {
- hitCaption = function(){
- mainForm.hitCaption();
- };
- hitmax = function(){
- return mainForm.hitmax()
- };
- hitmin = function(){
- mainForm.hitmin()
- };
- close = function(){
- mainForm.close();
- };
-
-
- updateItem = function(str,link){
-
- whole = str+ "**https://www.liaoxuefeng.com" +link;
- mainForm.listbox.add(whole,1);
-
- };
-
- aardioCall = function(str){
- mainForm.msgbox(str);
- };
- }
- //打开链接时触发该事件
- mb.onNavigation = function(url,navigationType){
- if( navigationType == 0/*_WKE_NAVIGATION_TYPE_LINKCLICK*/ ){
-
- }
- return true;
- }
- //可以使用CSS选择器获取HTML节点对象
- mainForm.urlButton.oncommand = function(id,event){
- mb.doScript(`
-
- var links = $('#x-wiki-index a');
- for(var i=0;i<links.length;i++){
-
- var item = $(links[ i ]).text();
- var link = $(links[ i ]).attr("href");
- link = link.replace("20%","");
- external.updateItem(item,link);
- // external.downloadItem(item,link);
-
-
-
- }
- `);
- }
- mainForm.downloadButton.oncommand = function(id,event){
- import console;
- import py;
- requests = py.import("requests");
- items = mainForm.listbox.items;
-
- var i = 0;
- for(key,val in items){
-
- if(i<3){
-
- var urls = string.split(val,"<**>");
- var url = urls[2];
-
- console.log("in button event:"+url);
- //在button事件里调用requests
- res = requests.get(url);
- console.log(res.text);
-
- thread.invoke(
- function(url){
- import console;
- console.log("in thread:"+url);
- import py;
- //在线程里调用requests
- requests = py.import("requests");
- res = requests.get(url);
- console.log(res.text);
- }
- ,url
- )
-
- i++;
- }
-
- }
- }
- //添加可拖动边框
- import win.ui.resizeBorder;
- win.ui.resizeBorder(mainForm);
- //添加阴影
- import win.ui.shadow;
- win.ui.shadow(mainForm);
- //限定最大化范围
- mainForm.webHost.oncommand = function(id,event){
-
- }
- mainForm.hint.oncommand = function(id,event){
-
- }
- import win.ui.minmax;
- win.ui.minmax(mainForm);
- mainForm.show();
- win.loopMessage();
- mb.wait(); //等待页面完全打开
复制代码 |
|