This page is just a placeholder. Feel free to start editing and adding information about PythonCard from the perspective of a Visual Basic user. - KEA 2002-04-22



The biggest benefit of using PythonCard instead of Visual Basic is that you get to use Python as the programming language instead of Basic and leverage the large set of Python Standard Libraries. Probably the second biggest benefit is being able to run your program on Linux and OS X in addition to Windows.


See the vb2py section below for the status of a project to convert existing Visual Basic programs to PythonCard.

Standalone Applications

You can build standalone EXEs using py2exe and Gordon McMillan's installer. The resulting package will allow an application to be installed on a users machine without needing to install Python, wxPython or PythonCard. The packages are self-contained, so you don't have to worry about DLL conflicts in the System folder either. There are example scripts included with the minimal sample for building standalones.

win32 and win32com

Utilizing Mark Hammond's win32 code it is possible to create ActiveX (COM) servers and access existing COM components and other win32 services such as the registry. wxPython already includes wrappers for the Internet Explorer (IE) WebBrowser control and Adobe Acrobat Reader control.

win32com entries in the Python Cookbook

win32 entries in the Python Cookbook

Component Names

All components such as Buttons, TextFields, and Lists in PythonCard have a unique name used to reference the component from different parts of a program.

Event handlers

An event handler in Visual Basic looks something like this.

Private Sub Command1_Click()
    Command1.Caption = "hello"
End Sub

Assuming you had a button named 'Command1' in PythonCard, the handler would look like this if you wanted to use the target of the event to make the change.

def on_Command1_mouseClick(self, event): = "hello"

You could also access the Command1 Button this way.

def on_Command1_mouseClick(self, event):
    self.components.Command1.label = "hello"


Component layout in PythonCard is done using the resourceEditor sample.

Layout translator

Since the .frm layout descriptions are structured, it would be nice to have a .frm to PythonCard resource format translator. The different scale options supported by VB would need to be handled. Here's a portion of a VB .frm file

Begin VB.Form Form1 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "SearchExplorer"
   ClientHeight    =   4860
   ClientLeft      =   45
   ClientTop       =   615
   ClientWidth     =   7845
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   4860
   ScaleWidth      =   7845
   Begin VB.TextBox Text1 
      Height          =   285
      Left            =   0
      MaxLength       =   200
      TabIndex        =   0
      Top             =   0
      Width           =   6495
   Begin VB.CommandButton Command2 
      Caption         =   "Remove Search"
      Height          =   375
      Left            =   3360
      TabIndex        =   7
      TabStop         =   0   'False
      Top             =   4320
      Width           =   1455


Paul Paterson has announced the first release of vb2py.

"vb2py is a toolkit to aid in the conversion of Visual Basic projects to Python (using PythonCard). The conversion will eventually include both forms and code (modules and classes). Version 0.1 is mainly a form layout converter to PythonCard with a very simplistic code translation. The project roadmap shows the project's development timeline.

Converting VB to Python turns your VB projects into cross platform developments and allows full access to all Python's extensive library of modules."

PythonCardForVisualBasicUsers (last edited 2008-03-11 10:50:17 by localhost)

NOTE: To edit pages in this wiki you must be a member of the TrustedEditorsGroup.