搜索
查看: 2139|回复: 4

你想给python找个UI!,或许这样可以!

[复制链接]

13

主题

34

帖子

391

积分

二级会员

Rank: 3Rank: 3

积分
391
发表于 2017-10-12 22:59:49 | 显示全部楼层 |阅读模式
  1. import win.ui;
  2. import py3;

  3. /*DSG{{*/
  4. winform = win.form(text="aardio form";right=759;bottom=469)
  5. winform.add(
  6. button={cls="button";text="button";left=280;top=102;right=400;bottom=162;z=2};
  7. txt_log={cls="edit";left=14;top=246;right=743;bottom=455;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=1}
  8. )
  9. /*}}*/



  10. winform.load = function()
  11. {

  12. //捕获标准输出
  13.   
  14. }




  15. winform.button.oncommand = function(id,event){
  16.         //winform.msgbox( winform.button.text );
  17.           
  18.         //eval 示例

  19.         //编译python代码对象
  20.         var code =  py3.compile("1+2");

  21.         //运行代码并返回值
  22.   
  23.         //下面的代码在自定义的名字空间下执行eval功能
  24.         var dict = py3.dict() //创建一个自定义的名字空间
  25.         dict.exec("x=123"); //在名字空间下执行代码
  26.   
  27.         winform.txt_log.print(code.eval().parseNumber());
  28.        
  29.         winform.txt_log.print(dict.eval("x").parseNumber());       
  30.        
  31. }


  32. winform.enableDpiScaling();
  33. winform.show();

  34. winform.load();

  35. return win.loopMessage();
复制代码
回复

使用道具 举报

3

主题

51

帖子

312

积分

二级会员

Rank: 3Rank: 3

积分
312
发表于 2017-10-13 11:39:56 | 显示全部楼层
winfrom+py3,这样的搭配是可以的,毫无问题,相当于py有了界面
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2017-10-13 11:49:45 | 显示全部楼层
用aardio给python写个图形界面
http://www.cnblogs.com/Leo_wl/p/7426483.html
回复

使用道具 举报

8

主题

45

帖子

276

积分

二级会员

Rank: 3Rank: 3

积分
276
发表于 2017-10-14 22:48:01 | 显示全部楼层
对py不熟,看了这个帖子,无聊拿范例摆弄了一下,结果发现md5示例貌似有问题的。改成了下面的代码,也不知道对不对,到了update(s)这句就出错了。。。
  1. io.open()
  2. import py3

  3. pyCode = /**
  4. import hashlib

  5. def md5_hex(s):
  6.         m = hashlib.md5()
  7.         m.update(s)
  8.         #return "aaa"
  9.         return m.hexdigest()
  10. **/
  11. py3.exec( pyCode )
  12. var py_main = py3.addModule("__main__") //创建模块对象

  13. io.print( py_main.md5_hex("aaa") )

  14. execute("pause")
  15. io.close()
复制代码
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2017-10-15 01:52:48 | 显示全部楼层
土冒 发表于 2017-10-14 22:48
对py不熟,看了这个帖子,无聊拿范例摆弄了一下,结果发现md5示例貌似有问题的。改成了下面的代码,也不知 ...

这个update 的参数需要bytes(相当于aardio中的buffer),
原来扩展库里统一处理为字符串了,我刚才已经升级了py3扩展库,python需要bytes的地方,aardio传buffer过去就可以。
import console;
import py3;

var hashlib = py3.importModule("hashlib")

var md5 = hashlib.md5()

md5.update( raw.buffer(
"注意这个函数的参数不是字符串而是字节数组(相当于aardio中的buffer)") );

console.log( md5.hexdigest() );

console.pause()
更新一下py3扩展库就可以,你那个用python写的函数同样传buffer进去。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-10-24 07:06 , Processed in 0.062500 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表