[Python Tkinter]: Warnai Hari-mu Dengan RGB

Salah satu ciri orang sukses adalah mampu mengontrol emosi dirinya. Meski banyak sekali masalah yang dia alami, namun dia selalu mampu mengambil arti positif dari setiap kejadian. Dan kami yakin, Anda adalah salah satu dari orang-orang sukses tersebut..YES!

warna-tkinter-full-color-posters.com

Segala macam permasalahan dalam hidup kita sangatlah berwarna-warni. Sangat indah jika kita bisa menikmatinya…hehehe. Untuk artikel kali ini, kami akan membahas tentang “Bagaimana menampilkan warna-warni RGB di Python Tkinter?”. Agar hidup kita lebih berwarna..Langsung ke TeKaPe ya!

Komponen Tkinter: Frame, Label, dan Scale
Kode Program:

# file: warnaRGB.py
# Deskripsi: Program untuk menampilkan Warna RGB
#
# Python ver. 2.6
# Sistem Operasi: Debian 6 (squeeze)
# Tgl pembuatan: 1 Januari 2013 at 15.41 WIB
# Penulis: KlinikPython.wordpress.com
#

from Tkinter import *


class DemoWarnaRGB:
	def __init__(self, induk, judul):
		self.induk = induk
		
		self.induk.title(judul)
		self.induk.protocol("WM_DELETE_WINDOW", self.Tutup)
		self.induk.resizable(False, False)
		
		self.aturKomponen()
		
	def aturKomponen(self):
		# frame utama
		self.mainFrame = Frame(self.induk, bd=10)
		self.mainFrame.pack(fill=BOTH, expand=YES)
		
		# warna Merah
		Label(self.mainFrame, text='Merah :').grid(row=0, column=0, sticky=W)
		# buat scale dengan nilai awal = 0, nilai akhir=255 --> RGB
		# agar setiap kali scale kita ubah, warna juga berubah...gunakan
		#    metode ubahSkala.
		self.sclMerah = Scale(self.mainFrame, from_=0, to=255,
				orient=HORIZONTAL, length=200, command=self.ubahSkala)
		self.sclMerah.grid(row=0, column=1)
		
		# warna Hijau
		Label(self.mainFrame, text='Hijau :').grid(row=1, column=0, sticky=W)
		self.sclHijau = Scale(self.mainFrame, from_=0, to=255,
				orient=HORIZONTAL, length=200, command=self.ubahSkala)
		self.sclHijau.grid(row=1, column=1)
		
		# warna Biru
		Label(self.mainFrame, text='Biru :').grid(row=2, column=0, sticky=W)
		self.sclBiru = Scale(self.mainFrame, from_=0, to=255,
				orient=HORIZONTAL, length=200, command=self.ubahSkala)
		self.sclBiru.grid(row=2, column=1)
		
		# warna RGB
		Label(self.mainFrame, text='RGB :').grid(row=4, column=0, sticky=W)
		self.sclRGB = Scale(self.mainFrame, from_=0, to=255,
				orient=HORIZONTAL, command=self.ubahRGB, showvalue=0,
				length=200)
		self.sclRGB.grid(row=4, column=1, pady=10)
		
	def ubahRGB(self, event=None):
		# jika scale RGB diubah, maka scale lainnya juga akan sama
		# nilainya dengan scale RGB.
		indWarna = self.sclRGB.get() # ambil nilai scaleRGB
		
		# set nilai scaleRGB ke scale lainnya
		self.sclMerah.set(indWarna) 
		self.sclHijau.set(indWarna)
		self.sclBiru.set(indWarna)	
		
		# convert data ke Hex dan ubah background frame
		strHex ="#%02x%02x%02x" %(indWarna, indWarna, indWarna)
		self.mainFrame['background']= strHex
		
	def ubahSkala(self, event=None):
		# ambil nilai scale dan simpan dalam variabel
		indMerah = self.sclMerah.get()
		indHijau = self.sclHijau.get()
		indBiru = self.sclBiru.get()
		
		# convert data ke Hex dan ubah background frame
		strHex ="#%02x%02x%02x" %(indMerah, indHijau, indBiru)
		self.mainFrame['background']= strHex
				
	def Tutup(self, event=None):
		self.induk.destroy()
		
if __name__ == '__main__':
	root = Tk()
	
	app = DemoWarnaRGB(root, ":: Demo Warna RGB ::")
	
	root.mainloop()

Tampilan Program:

Tampilan saat program dijalankan.

Tampilan saat program dijalankan.

Tampilan saat Scale RGB di ubah, semua Scale juga berubah.

Tampilan saat Scale RGB di ubah, semua Scale juga berubah.

Tampilan program ketika Scale diubah, warna background juga berubah.

Tampilan program ketika Scale diubah, warna background juga berubah.

Woke…Selamat Mencoba dan Salam PythonMania!

4 comments

  1. gan, kl memulai python itu dimana ya? di comand line yang wrana hitam itu atau di GUI yang warna putih itu?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s