VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 7775|回复: 14

[原创] Visual Tkinter (使用VB6设计Python的GUI界面),提供源码

[复制链接]
发表于 2012-10-24 01:42:49 | 显示全部楼层 |阅读模式
一句话介绍:这是一个VB6的IDE插件(Addin),使用VB6的IDE直接设计Python的界面。
Python和VB都是能让人快乐的编程语言,我使用了Python之后,很多自己使用的工具都使用Python开发或改写了,

因为最终实现的Python代码实在太短了,有时候Python一行代码就可以实现VB一个函数的功能。
Python就是这种让人越用越开心的语言。
不过说实在,使用Python开发GUI界面还是麻烦了一些了,自带的标准库Tkinter简单是简单,不过对于习惯了VB拖

拉控件完成界面设计的偶来说,还是不够人性化。
至于PyQt/wxPython等GUI库,尽管有可视化设计工具,但总感觉做一般的轻量级应用是杀鸡用牛刀,而且不够环保

,不够低碳,要带一个很大的库,需要目标机器上夜同样安装了PyQt/wxPython,做不了绿色软件。

所以最终的结果是我更喜欢Tkinter,用起来很简单,绿色环保,真正的跨平台,一个PY或PYC文件到处运行。
很多人都认为TK的界面不够美观,不过导入Python自带的TTK主题库后,界面非常Native,不输PyQt/wxPython。
此Addin默认启用TTK支持,也可选择关闭。
总而言之,轻量级GUI,TK+TTK足够。

使用此ADDIN,你可以不用写一句代码就可以生成一个完整可运行的Python的GUI界面,支持2.X和3.X。

将压缩包解压到你希望的目录,然后执行Setup.exe完成注册插件过程,打开VB6就可以用了。
在VB窗体上设计完成界面后(你可以大胆的设置各控件的属性,ADDIN尽量将其翻译为tkinter的控件属性),点工

具栏上的VisualTkinter(图标为一片羽毛),再点'生成代码'按钮,即可生成可运行的Python代码,可以拷贝至剪

贴板或保存至文件。
一般情况下你可以不用再改变tkinter的控件属性,但是如果你熟悉tkinter,需要更多的控制,可以一一核对各属

性,并且修改,再生成代码。
当然除了用来设计界面外,此ADDIN内置的各控件属性列表可以做为编程参考,比较完整,除了极少数我认为大多

数人都不用的属性外,其他属性我基本上从官方的tkinter文档直接翻译。
如果还没有VB6,网上找一个VB6精简版即可,不到20M,小巧玲珑。

VisualTkinter_v1.2.part1.rar (256 KB, 下载次数: 1382)

点评

Blender里面的Python GUI你研究过么?  发表于 2012-10-24 13:38

评分

参与人数 1威望 +16 人气 +3 收起 理由
lekj + 16 + 3 赞一个!

查看全部评分

本帖被以下淘专辑推荐:

 楼主| 发表于 2012-11-3 07:28:44 | 显示全部楼层
VisualTkinter_v1.2.5.rar (439.56 KB, 下载次数: 923)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-25 10:21:13 | 显示全部楼层
v1.3.2 稳定全功能版本,后续基本上会很少升级了。

VisualTkinter_v1.3.2.rar (237.46 KB, 下载次数: 955)

点评

源码在哪里?  发表于 2012-12-31 17:05
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-31 23:56:12 | 显示全部楼层
https://www.github.com/cdhigh/Visual-Tkinter-for-Python

评分

参与人数 1威望 +10 人气 +3 收起 理由
acme_pjz + 10 + 3 精品文章,我用Google Code

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2013-1-2 11:20:32 | 显示全部楼层
楼主高尚!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-23 00:18:25 | 显示全部楼层
github好像被墙了,放上V1.4.2版本,从1.4版本开始支持VB精简版。

支持精简版的关键是不要实现VB6的Addin Designer,而是自己增加一个类模块,名字为Connect, 并实现IDTExtensibility接口。

Visual Tkinter_v1.4.2.rar (486.96 KB, 下载次数: 1008)

点评

被墙了?只是随机上不去而已吧……Google Code也经常被墙,不过用IPv6访问就没有问题(现在只有教育网才有IPv6)  发表于 2013-1-23 12:13

评分

参与人数 1威望 +5 人气 +2 收起 理由
Jen + 5 + 2 用github,强人!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2013-1-23 11:58:33 | 显示全部楼层
喔,那里面有个GridOcx控件,单独拿出来不知道怎么用。

With Gridocx1
        
        ' Set the grid image list.  This property can also be
        ' set to a Microsoft ImageList object:
        'Set .ImageList = m_cFlg16.hIml 'was ilsIcons.hIml
        ' By default, the header uses the same IML as the grid
   
        ' Add the columns we will use:
        .AddColumn "Name", 200, lgAlignCenterCenter, lgString
        .AddColumn "Size", 300, lgAlignRightCenter, lgString
      
         .RowHeight = 30
      
End With

Col, Cols,Row,没有Rows,不知道怎样加条目,用AddItem?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-24 03:55:49 | 显示全部楼层
根据网友们反馈,github的http网页暂时没有封,但是gist等其他接口封掉了。
而且目前有部分省份已经封掉了http访问,使用dns污染的方式。

回复Jen:
在MainFrm.frm文件中搜索Lstcfg,你就知道怎么用了,这个控件是很不错的。

点评

@sexfio,俄文字母  发表于 2013-2-4 11:28
神奇,那个N怎么打出反的来的?  发表于 2013-1-25 21:42
另外git怎么用啊,我用git fetch提示下回了一些东西,但是文件并没有更新,git pull直接提示Your system reports no Git commands at all. 晕倒  发表于 2013-1-24 12:31
要不然就用VРИ吧  发表于 2013-1-24 12:08
8.8.8.8。。。不行的话就用DNSCrypt  发表于 2013-1-24 12:06
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-1-25 03:38:21 | 显示全部楼层
cdhigh1 发表于 2013-1-24 03:55
根据网友们反馈,github的http网页暂时没有封,但是gist等其他接口封掉了。
而且目前有部分省份已经封掉了 ...

不清楚你说的不会用GIT是要使用GITHUB网站,还是通用的GIT使用方法。
GIT很复杂,但是常用的命令就那么几个,如果是为了在GITHUB托管代码,可以使用GITHUB开发的GUI客户端,常用操作用GUI界面完成,并且也带了通用GIT shell。

在安装完成GITHUB客户端并配置完成后,在HTTPS网页上有一个Clone in Windows按钮,点击此按钮就会在你的默认代码目录下生成一个完整git代码仓库。包括所有代码和所有历史

点评

我是说git命令行不会用,GUI客户端我不想用,因为不够绿色 -_-|||  发表于 2013-1-25 14:17
回复 支持 反对

使用道具 举报

发表于 2013-1-25 09:55:46 | 显示全部楼层
Jen 发表于 2013-1-23 11:58
喔,那里面有个GridOcx控件,单独拿出来不知道怎么用。

With Gridocx1

原来要设置 控件的AutoRedraw为True

Dim Row As Long

    With sGrid1
    .Redraw = False
    .Editable = True
    .EditType = EnterKey Or MouseDblClick Or F2Key
    .CheckBoxes = True
    .AddColumn "Property", 2260, lgAlignCenterCenter
    .AddColumn "Value", 3450, lgAlignCenterCenter
    .ColAlignment(0) = lgAlignLeftCenter
    .ColAlignment(1) = lgAlignLeftCenter
    .SelectBackColor = &HFCC597 'vbHighlight
   Row = .AddItem("Row0")
    .CellText(0, 1) = "12"
    .AddItem ("Row1")
    .CellText(1, 1) = "2"
    .AddItem ("Row2")
    .CellText(2, 1) = "22"
    .AddItem ("Row3")
    .CellText(3, 1) = "102"
    .Redraw = True
      
    End With
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2020-5-26 19:47

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表