Herşey Linux ile başladı.

Pardus deneyimlerim

04 Mar 2009 için Arşiv

İlk PyQt Arayüz Çalışmam-Qt4

Yazan: okursat Mart 4, 2009

İlk arayüz çalışmamı yaptım ve hemen paylaşmak istedim. Arayüz çalışmasını QT4 ile gerçekleştirdim. Bu gerçek anlamda ilk QT4 deneyimim. QT4′ ün tasarımcıya çok büyük kolaylıklar sağlayan arabirimi ve kullanışlılığı sayesinde arayüz tasarımım 5 dakika gibi kısa bir sürede bitti. Zaten işin QT4 kısmı basit ve zevkli. İşin zor bölümü  ise tasarladığınız arayüz ile yazdığınız kodların entegre edilmesi. Bütün bu işlemleri yapabilmemiz için bildiğiniz üzere sistemimizde Qt4 ve Python kurulu olmalıdır.

QT4 ile arayüz çalışmalarından görüntüler aşağıdaki gibi olacak.

qt1

Yukarıda görüldüğü gibi gerekli bileşenleri formumuza sürükleyerek ekliyoruz.

qt3

Ve düğmelere fonksiyon atayarak arayüz çalışmamız burada bitiyor. Bu arada arayüz çalışmaları ile ilgili pek fazla bir açıklama yazmadım. Bunu bir kaç sebebi var. Birincisi daha yeni öğreniyorum, yeterli bilgim yok. İkincisi en iyi öğrenme yollarından biri deneme yanılmadır. PyQt ile ilgili buradaki örneklere bakabilirsiniz. Anlatımı çok güzel.

Arayüzü oluşturduktan sonra sıkıntılı olan (benim için) Python kodları ile entegre etme işlemini yaptım. Kodların son hali aşağıdaki gibi oldu.

# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui
from datetime import date
import sys
class ogren:
def __init__(self, ui):
self.ui = ui

def bilgi(self):
global bugun
global dg
global yas
bugun = date.today()
ui.label_6.setText(u”Bugün :”)
ui.label_7.setText(str(bugun))
ui.label_5.setText(u”Alanları doldurup Öğren tuşuna tıklayın.”)
yol = int(ui.lineEdit.text())
ay = int(ui.lineEdit_2.text())
gun = int(ui.lineEdit_3.text())
dg = date(yol, ay, gun)
yas = bugun – dg
ui.lineEdit.clear()
ui.lineEdit_2.clear()
ui.lineEdit_3.clear()
ui.label_4.setText(str(yas))

class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(“MainWindow”)
MainWindow.resize(438, 387)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(“centralwidget”)
self.lineEdit = QtGui.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(70, 80, 113, 29))
self.lineEdit.setObjectName(“lineEdit”)
self.lineEdit_2 = QtGui.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(70, 110, 113, 29))
self.lineEdit_2.setObjectName(“lineEdit_2″)
self.lineEdit_3 = QtGui.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(70, 140, 113, 29))
self.lineEdit_3.setObjectName(“lineEdit_3″)
self.pushButton = QtGui.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(20, 240, 131, 28))
self.pushButton.setObjectName(“pushButton”)
self.pushButton_2 = QtGui.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(150, 240, 106, 28))
self.pushButton_2.setObjectName(“pushButton_2″)
self.label = QtGui.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(30, 80, 62, 19))
self.label.setObjectName(“label”)
self.label_2 = QtGui.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(30, 110, 62, 19))
self.label_2.setObjectName(“label_2″)
self.label_3 = QtGui.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(30, 140, 62, 19))
self.label_3.setObjectName(“label_3″)
self.label_4 = QtGui.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(30, 210, 231, 19))
self.label_4.setObjectName(“label_4″)
self.label_5 = QtGui.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(10, 20, 421, 20))
self.label_5.setObjectName(“label_5″)
self.label_6 = QtGui.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(260, 50, 62, 19))
self.label_6.setObjectName(“label_6″)
self.label_7 = QtGui.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(320, 50, 111, 19))
self.label_7.setObjectName(“label_7″)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 438, 27))
self.menubar.setObjectName(“menubar”)
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(“statusbar”)
MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)
self.ogren = ogren(self)
QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL(“clicked()”), MainWindow.close)
QtCore.QObject.connect(self.pushButton,QtCore.SIGNAL(“clicked()”),self.ogren.bilgi)
QtCore.QObject.connect(self.lineEdit_3, QtCore.SIGNAL(“returnPressed()”), self.pushButton.animateClick)
QtCore.QMetaObject.connectSlotsByName(MainWindow)

def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate(“MainWindow”, “Kaç Gün Yaşadın”, None, QtGui.QApplication.UnicodeUTF8))
self.pushButton.setText(QtGui.QApplication.translate(“MainWindow”, “Öğ&ren”, None, QtGui.QApplication.UnicodeUTF8))
self.pushButton_2.setText(QtGui.QApplication.translate(“MainWindow”, “&Kapat”, None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate(“MainWindow”, “Yıl”, None, QtGui.QApplication.UnicodeUTF8))
self.label_2.setText(QtGui.QApplication.translate(“MainWindow”, “Ay”, None, QtGui.QApplication.UnicodeUTF8))
self.label_3.setText(QtGui.QApplication.translate(“MainWindow”, “Gün”, None, QtGui.QApplication.UnicodeUTF8))
self.label_4.setText(QtGui.QApplication.translate(“MainWindow”, “…”, None, QtGui.QApplication.UnicodeUTF8))
self.label_5.setText(QtGui.QApplication.translate(“MainWindow”, “Alanları doldurup Öğren tuşuna tıklayın.”, None, QtGui.QApplication.UnicodeUTF8))
self.label_6.setText(QtGui.QApplication.translate(“MainWindow”, “Bugün :”, None, QtGui.QApplication.UnicodeUTF8))
self.label_7.setText(QtGui.QApplication.translate(“MainWindow”, ” “, None, QtGui.QApplication.UnicodeUTF8))
app = QtGui.QApplication(sys.argv)
window = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(window)

window.show()
sys.exit(app.exec_())

Ve son olarak dosyayı python ogren.py komutu ile konsoldan çalıştırdığımda aldığım ekran görüntüleri aşağıda.

datetime1datetime2datetime3datetime4

Mutlu son. Tabiiki program çok ilkel, ne de olsa yeni başladım. Vakit buldukça arayüz denemelerine devam edeceğim ve paylaşacağım.

Yazı kategorisi: Python | Etiketler: , , , , , | » yorum bırak;

Pardus 2009 OCR

Yazan: okursat Mart 4, 2009

Gece günün ilk saatlerinde Özgürlük için Rss’ sine Pardus 2009 Geliştirici Toplantısı ile ilgili bir haber düştü. Haberin bir kısmında Uğur TUTAR ile ilgili olarak aşağıdaki kısım yazılmış.

Uğur TUTAR tarafından hazırlanacak Türkçe destekli OCR programının ise yetişirse 2009.1 sürümünden sonra projeye dâhil edilebileceği öngörüldü.

Bu güzel haberi sizlerle paylaşmak istedim. İnşallah değerli geliştiricimiz bu güzel programını en kısa zamanda bitirerek, bizlerin beğenisine sunar. Heyecanla bekliyorum. Galiba artık Pardus’ ta kendi ürünümüz olan uygulamaları daha fazla göreceğiz.

Kaynak : www.ozgurlukicin.com

Pardus markası ve logotipi TÜBİTAK’ın tescilli markasıdır.

Yazı kategorisi: Pardus | Etiketler: , , | » yorum bırak;