Events handling
Now, you have some widgets on the window. However, there are no actions
associated with them. If you try to click on Open button, nothing happens.
To enable the widgets to perform tasks you need to use Bind() method that
binds a widget to a method. The Open button would read data from a file
input in filename box and display its content in the contents widget. The
Save button would save changes made to the content of the file.
import wx
import re
def openfile(event):
matchtextfile(filename.GetValue())
try:
f=open(filename.GetValue(),'r')
contents.SetValue(f.read())
except Exception:print 'Not a valid
file name'
finally:
f.close()
def matchtextfile(filename):
pat='.txt'
if re.search(pat,filename):
return
else:
openButton.Enable(False)
def savefile(event):
try:
f=open(filename.GetValue(),'w')
f.writelines(contents.GetValue())
except Exception:'Erro in writing
data...'
finally:
f.close()
def enablebutton(event):
openButton.Enable(True)
app = wx.App()
win = wx.Frame(None, title="Simple Text Editor", size=(500, 500))
container=wx.Panel(win)
filename = wx.TextCtrl(container)
filename.Bind(wx.EVT_SET_FOCUS,enablebutton)
contents = wx.TextCtrl(container, style=wx.TE_MULTILINE | wx.HSCROLL)
openButton = wx.Button(container, label='Open')
openButton.Bind(wx.EVT_BUTTON,openfile)
saveButton = wx.Button(container, label='Save')
saveButton.Bind(wx.EVT_BUTTON,savefile)
hbox = wx.BoxSizer(wx.HORIZONTAL)
hbox.Add(filename, proportion=1, flag=wx.EXPAND)
hbox.Add(openButton, proportion=0, flag=wx.LEFT, border=5)
hbox.Add(saveButton, proportion=0, flag=wx.LEFT, border=5)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(hbox, proportion=0, flag=wx.EXPAND | wx.ALL, border=5)
vbox.Add(contents, proportion=1,
flag=wx.EXPAND | wx.LEFT | wx.LEFT | wx.LEFT, border=5)
container.SetSizer(vbox)
win.Show()
app.MainLoop()
Note: The constant wx.EVT_BUTTON indicates button event. The constant
wx.EVT_SET_FOCUS indicates focus event. These constants and other useful
constants can be found in wx module. You can get help on these constants by
type:
>>>help(wx)
|
|
-
Why and How to learn
- C programming language?
- C++ programming language?
- C# programming language?
- Java programming language?
- Python programming language?
- VB programming language?
|
|
Python programming tutorial
|
 Posted comments | Phan Neth, CICI, year 3: Now it is ok teacher. I can connect to database and select data from it. Than you so much teacher !!!!!
04-30-2013 | Dara: Copy and paste the link below to the address box to learn how to connect C and Mysql server:
http://www.worldbestlearningcenter.com/index_files/cpp-tutorial-connect_mysql_database.htm
04-27-2013 | Phan Neth, CICI, year 3: Hello teacher i want to connect C programming language to MySql server but it have problem. When i compile it always error with library " my_global.h
and mysql.h", so how should i do?
04-27-2013 | Phan Neth, Year 3 at CICI,: I have some problem about connection to mysql server. So I hope teacher can help me. Thank !!!!
04-26-2013 | Federico: Output appears the same also this way:
static void Main(string[] args)
{
int[,] myArray = new int[5, 5];
int row, i;
int n = 1;
for (row = 0; row < 5; row++)
{
for (i = 0; i < 5; i++)
{
myArray[row, i] = n;
if (row == 1 && i == 2) Console.Write(" \t");
else Console.Write("{0} \t", n);
if (n!=26) n++;
if((i+1)%5==0) Console.WriteLine("\n");
}
}
Console.ReadLine();
}
04-13-2013 | Dara: Let pointer p point to the index 1 elem (value=2) of the array.
int *p= a+1;
Let pointer q point to the index 6 elem (value=5) of the array.
int *q= a+6;
-Expression q-p is the subtraction of address of the index 6 element and the address of index 1 elem of the array. So, the result is 5.
-Expression *p+*q is the sum of the value of index 1 elem (2) and the value of index 6 elem (5). So, the result is 7.
In conclusion, the output is 57.
03-28-2013 | Anushka : Find the output of following code
main()
{
int a[] = {1,2,9,8,6,3,5,7,8,9};
int *p= a+1; int *q= a+6;
cout<< q-p <<*p+*q; }
03-28-2013 | Dara: Option Explicit
Dim Cn as New ADODB.Connection
Private Sub_Form_Load()
Cn.Open "Provider=SQLOLEDB; Data Source=ServerName; Initial Catalog=DatabaseName;UserID=UserName; Password=Passw"
End Sub
You will need to replace ServerName with the name of your server (installed SQL Server), DatabaseName withe the name of your data file that you want to connect to, UserName with the name of the user to login to SQL Server, and Passw with the password used to login to SQL Server.
03-13-2013 | More>>> |
|
| .................................................................................................................... | Home | Forum | About | Contact | | | This website intents to provide free and high quality tutorials, examples, exercises and solutions, questions and answers of programming and scripting languages: C, C++, C#, Java, VB.NET, Python, VBA,PHP & Mysql, SQL, JSP, ASP.NET,HTML, CSS, JQuery, JavaScript and other applications such as MS Excel, MS Access, and MS Word. However, we don't guarantee all things of the web are accurate. If you find any error, please report it then we will take actions to correct it as soon as possible. | | Copyright @ 2011-2013 worldbestlearningcenter. All Rights Reserved. |
|