[GUI]penggunaan wxpython - schumbag - 01-24-2012 06:05 PM
bingung juga,dapet side project bikin aplikasi buat penghitungan inventaris
persewaan dan jual-beli mobil
permintaannya harus ada dialog box yg nerima input dari user
trus simpen ke db
kayaknya gampang yak tapi rumit tauuu buat ane yang nyubi -__-
kita pake module wxpython
class RollOver(wx.Dialog):
def __init__(self, parent, id):
wx.Dialog.__init__(self, parent, id, "Persewaan Mobil PELI", size=(280, 230))
#panel utama
panel = wx.Panel(self, -1)
vbox_top = wx.BoxSizer(wx.VERTICAL)
#panel 1
panel1 = wx.Panel(panel, -1)
#Instansiate stuff that goes on panel1
activity_label= wx.StaticText(panel1, -1, 'Activity: ', (5, 5))
title_label= wx.StaticText(panel1, -1, 'Admin: ', (5, 5))
start_date_label= wx.StaticText(panel1, -1, 'Mulai Tanggal: ', (5, 5))
end_date_label= wx.StaticText(panel1, -1, 'Sampai Tanggal: ', (5, 5))
#isi combo box
activityList = ['Jual', 'Beli', 'Sewa']
activity_combo = wx.ComboBox(panel1, size=(120, -1), choices=activityList, style=wx.CB_DROPDOWN)
#judul field
title_text = wx.TextCtrl(panel1, size=(120, -1))
#field tanggal mulai
start_date_text = wx.TextCtrl(panel1, size=(120, -1))
#field tanggal akhir
end_date_text = wx.TextCtrl(panel1, size=(120, -1))
#nambah grid buat layout panel1
grid1 = wx.GridSizer(4, 2, 10, 10)
grid1.Add(activity_label, 0, wx.ALIGN_CENTER_VERTICAL)
grid1.Add(activity_combo)
grid1.Add(title_label, 0, wx.ALIGN_CENTER_VERTICAL)
grid1.Add(title_text)
grid1.Add(start_date_label, 0, wx.ALIGN_CENTER_VERTICAL)
grid1.Add(start_date_text)
grid1.Add(end_date_label, 0, wx.ALIGN_CENTER_VERTICAL)
grid1.Add(end_date_text)
panel1.SetSizer(grid1)
#nambah panel 1 buat boxsizer
vbox_top.Add(panel1, 0, wx.ALL, 10)
#Panel2
panel2 = wx.Panel(panel, -1)
#Cancel button
cancel_button = wx.Button(panel2, -1, "Batal")
cancel_button.SetFont(wx.Font(10, wx.MODERN, wx.NORMAL, wx.NORMAL, 0, ""))
cancel_button.SetDefault()
cancel_button.Bind(wx.EVT_BUTTON, self.cancel_button_click)
self.Bind(wx.EVT_KEY_DOWN, self.escape_pressed)
#button
go_button = wx.Button(panel2, -1, "Simpan")
go_button.SetFont(wx.Font(10, wx.MODERN, wx.NORMAL, wx.NORMAL, 0, ""))
go_button.SetDefault()
go_button.Bind(wx.EVT_BUTTON, self.go_button_click)
grid2 = wx.GridSizer(1, 2, 10, 80)
grid2.Add(cancel_button, 0, wx.ALIGN_LEFT)
grid2.Add(go_button, 0, wx.ALIGN_RIGHT)
panel2.SetSizer(grid2)
vbox_top.Add(panel2, 0, wx.ALL, 9)
panel.SetSizer(vbox_top)
self.Centre()
self.SetClientSize(panel.GetBestSize())
self.ShowModal()
self.Destroy()
def escape_pressed(self, event):
if event.m_keyCode == wx.WXK_ESCAPE:
self.cancel_button_click(event)
def cancel_button_click(self, event):
self.Close()
def go_button_click(self, event):
print "Do stuffs"
app = wx.App()
RollOver(None, -1)
app.MainLoop()
Contoh Penampakan :
![[Image: 407759_2841591933285_1663942316_2469058_458173399_n.jpg]](https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash4/s720x720/407759_2841591933285_1663942316_2469058_458173399_n.jpg)
ok elemen GUI python memang (tidak) mengharuskan pake layout grid
setidaknya buat nyubi seperti ane.
nah,yang ini kl di running di windows gk bakal
makan banyak proses,jadi biar hemat dan gk lelet
bisa di cek langsung pake task manager
#!/usr/bin/env python
#coder : cakill schumbag
#masih belajar
#somebody expert help and tutored me
#thanks so much
import os
import sys
import time
def main():
#perintah ini akan membuat anak proses
#yang menggunakan fungsi os.fork()
#mengembalikan pid ke parent
#dan mengembalikan nilai 0
#gunakan fungsi os._exit() untuk keluar
#sementara anak proses menjalankan tugas sebagai daemon
if os.fork() !=0:
os._exit(0)
#fungsi os.setsid() akan membuat session baru
#dan kembalikan session ID yang di buat
os.setsid()
#mengubah direktory kerja menjadi direktory aktif
os.chdir('.')
#jadikan umask proses sebagai null
#guna membersihkan bit permission pada file yang di buat
os.umask(0)
#tiga baris berikut akan menutup stdin,stdout and stderr
#dan tidak menampilkan error dengan fungsi print()
#atau tutup file lain dengan menutup file descriptornya
#dengan fungsi:
# try:
# for fd in rante(0,256):
# os.close(fd)
# except:
# pass
sys.stdin.close()
sys.stdout.close()
sys.stderr.close()
#daptkan pid proses untuk generate file output dari daemon
pid = os.getpid()
fname = sys.argv[0] + '.' + str(pid)
#buat file writable
#tutup jika sudah ada dan jadikan 0 byte
f = open(fname,'w')
f.close()
#looping 60 detik hingga kill process
#tulis informasi file yang di spesifikasikan
#buka file dengan append dan tutup
while 1:
f = open(fname,'a')
msg = '[' + str(pid) + ']: reporting at ' + time.asctime() +'\n'
f.write(msg)
f.close()
time.sleep(60)
if __name__ == '__main__':
main()
kl di running biasa di linux sih,daemonnya gak bakal munculin apa-apa
cuma muncul di shell pas kita ketik
ps -aux penampakan
![[Image: 407759_2841591893284_1663942316_2469057_95596817_n.jpg]](https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash4/s720x720/407759_2841591893284_1663942316_2469057_95596817_n.jpg)
maap,di leptop udah gk pake windows 
jd gk bisa ambilin SS buat di win -___-
RE: [GUI]penggunaan wxpython - nanda - 01-24-2012 06:09 PM
gilak ... keren 
pertamax
RE: [GUI]penggunaan wxpython - civo - 01-24-2012 06:29 PM

nian tutornya mbah cakill...
ane mau dan ijin ane arsipin buat bank data ane yaa omz
RE: [GUI]penggunaan wxpython - CitooZz - 01-24-2012 06:41 PM
ijin pelajari mbah
RE: [GUI]penggunaan wxpython - whitecoinDC - 01-24-2012 07:05 PM
Ane yakin ente pasti PROGRAMMER!!!!  
Mantap bro, ane serap ILMU ente, jadi kapan main ke Bulungan (Blok M) ane kenalin sama anak-anak Trashmetal kawan-kawan tongkrongan ane... 
Yang ane bingung kenapa pas ane mw bikin thread ente juga bikin ya? 
RE: [GUI]penggunaan wxpython - wahyu_devilzc0de™ - 01-24-2012 07:47 PM
ajib banget kak , ijin
RE: [GUI]penggunaan wxpython - ditatompel - 01-25-2012 04:49 AM
Wah... Keren nih... Ijin pelajari om...
RE: [GUI]penggunaan wxpython - kerobero - 01-25-2012 05:02 AM
Thanks kakak, aku lagi belajar python 
RE: [GUI]penggunaan wxpython - kopra.ekopranoto - 01-28-2012 06:31 PM
sdh bisa konek k db ny ?
RE: [GUI]penggunaan wxpython - schumbag - 02-02-2012 12:40 PM
@all
thank's juga udah komeng
sikat ajah silahkan :)
@kopra
udah,pake sqlite
|