السلام عليكم ورحمة الله وبركاته
وجدت هذا الموضوع في قسم لغة البيرل (هنا) عجبتني الفكرة فقلت لما لا يتم تطبيقها على بيئة البايثون
من يريد المشاركة فمرحبا به
ومن لم يفهم الفكرة فسأقوم بشرحها
ممكن توضيح الفكره ؟
لديك ملفين txt الملف الأول يحتوي على كلمات إنجليزية من 1 إلى 100 مثلا
والملف الثاني يحتوي على كلمات عربية بنفس الترتيب الملف الأول من 1 إلى 100
مثلا الملف أول في سطر 10 الكلمة "Programming" في الملف الثاني السطر 10 تجد مقابلها وهو "البرمجة"
ما سيفعله المستخدم هو إختيار اللغة التي سيتم ترجمتها وإختيار اللغة التي ستترجم بها مثلا من عربية إلى إنجيلزية أو العكس
ومن بعد ذلك سيكتب الكلمة المراد ترجمتها وطباعتها في الواجهة
وكلمسة جديدة من أفضل جعل السكربت يعمل على الواجهة الرسومية
أي إضافات مرحبا بها

الواجهة الرسومية
from gi.repository import Gtk
def translate(widget, data=None):
pass
win = Gtk.Window()
win.connect("delete_event", Gtk.main_quit)
vbox = Gtk.VBox()
hbox = Gtk.HBox()
entry = Gtk.Entry()
btn = Gtk.Button("Teanslate")
text = Gtk.Label("")
win.add(vbox)
vbox.pack_start(hbox, False, False, 0)
hbox.pack_start(entry, True, True, 0)
hbox.pack_start(btn, False, False, 0)
vbox.pack_start(text, True, True, 0)
btn.connect("clicked", translate)
win.show_all()
Gtk.main()هل تقترح اي تعديل ؟
واذا تفضل qt مو مشكلة
سوف استخدام qt بدل gtk
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'qttran.ui'
#
# Created: Sat Mar 22 22:35:17 2014
# by: PyQt4 UI code generator 4.10
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
import sys
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(530, 314)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.gridLayoutWidget = QtGui.QWidget(self.centralwidget)
self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 531, 261))
self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget"))
self.gridLayout = QtGui.QGridLayout(self.gridLayoutWidget)
self.gridLayout.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
self.gridLayout.setMargin(5)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.lineEdit = QtGui.QLineEdit(self.gridLayoutWidget)
self.lineEdit.setLayoutDirection(QtCore.Qt.LeftToRight)
self.lineEdit.setAutoFillBackground(False)
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.gridLayout.addWidget(self.lineEdit, 0, 0, 1, 1)
self.pushButton = QtGui.QPushButton(self.gridLayoutWidget)
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.gridLayout.addWidget(self.pushButton, 0, 1, 1, 1)
self.comboBox = QtGui.QComboBox(self.gridLayoutWidget)
self.comboBox.setLayoutDirection(QtCore.Qt.RightToLeft)
self.comboBox.setObjectName(_fromUtf8("comboBox"))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.gridLayout.addWidget(self.comboBox, 1, 0, 1, 2)
self.textBrowser = QtGui.QTextBrowser(self.gridLayoutWidget)
self.textBrowser.setObjectName(_fromUtf8("textBrowser"))
self.gridLayout.addWidget(self.textBrowser, 2, 0, 1, 2)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 530, 29))
self.menubar.setObjectName(_fromUtf8("menubar"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.pushButton.setText(_translate("MainWindow", "ترجم", None))
self.comboBox.setItemText(0, _translate("MainWindow", "من الانجليزية الى العربية", None))
self.comboBox.setItemText(1, _translate("MainWindow", "من العربية الى الانجليزية", None))
class Tran(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = Tran()
myapp.show()
sys.exit(app.exec_())كيف يمكن عند تكبير النافذة ان تاخذ العناصر ملئ النافذة ؟؟؟
تم تعديل هذه المشاركة بواسطة the.scorpion في 22 مارس 2014 في 22:41
class Tran(QtGui.QMainWindow): def __init__(self, parent=None): QtGui.QMainWindow.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"), self.fromto) def entoar(self): try: ef = open("ef.txt", "r") af = open("af.txt", "r") en = ef.readlines() ar = af.readlines() x = self.ui.lineEdit.text() i = en.index(x+"\n") t = ar self.ui.textBrowser.clear() self.ui.textBrowser.append(t) except Exception ,e: print(e) ef.close() af.close() def artoen(self): try: ef = open("ef.txt", "r") af = open("af.txt", "r") en = ef.readlines() ar = af.readlines() x = self.ui.lineEdit.text() i = ar.index(x+"\n") t = en self.ui.textBrowser.clear() self.ui.textBrowser.append(t) except Exception, e: print(e) ef.close() af.close() def fromto(self): i = unicode(self.ui.comboBox.currentText()) if i =="from en to ar": self.entoar() else: self.artoen()يوجد مشكلة في الترميز ساحاول بها لاحقا.
قمت ياستخدام sqlite3
class Tran(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"), self.fromto)
def entoar(self):
try:
self.ui.textBrowser.clear()
word = self.ui.lineEdit.text()
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("select * from dict")
words = con.fetchall()
for w in words:
if word == w[0]:
self.ui.textBrowser.append(w[1])
con.close()
sql.close()
except Exception,e:
print(e)
def artoen(self):
try:
self.ui.textBrowser.clear()
word = self.ui.lineEdit.text()
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("select * from dict")
words = con.fetchall()
for w in words:
if word == w[1]:
self.ui.textBrowser.append(w[0])
con.close()
sql.close()
except Exception,e:
print(e)
def fromto(self):
i = unicode(self.ui.comboBox.currentText())
if i =="from en to ar":
self.entoar()
else:
self.artoen()الموضوع رائع جداً كنت أبحث لتطبيق مثل هذا من زمان
مشكور الله يخليك كمل متابعك
قمت باضافة خاصية اضافة كلمة جديده الى القاموس وايضا تغيير الثيم
#! /usr/bin/python
# -*- coding: utf-8 -*-
# dictionary
from PyQt4 import QtCore, QtGui
import qdarkstyle
import sys
import sqlite3
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(530, 386)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.gridLayoutWidget = QtGui.QWidget(self.centralwidget)
self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 531, 331))
self.gridLayoutWidget.setObjectName(_fromUtf8("gridLayoutWidget"))
self.gridLayout = QtGui.QGridLayout(self.gridLayoutWidget)
self.gridLayout.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
self.gridLayout.setMargin(5)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.wordar = QtGui.QLineEdit(self.gridLayoutWidget)
self.wordar.setObjectName(_fromUtf8("wordar"))
self.gridLayout.addWidget(self.wordar, 4, 0, 1, 1)
self.lineEdit = QtGui.QLineEdit(self.gridLayoutWidget)
self.lineEdit.setLayoutDirection(QtCore.Qt.LeftToRight)
self.lineEdit.setAutoFillBackground(False)
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.gridLayout.addWidget(self.lineEdit, 0, 0, 1, 1)
self.pushButton = QtGui.QPushButton(self.gridLayoutWidget)
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.gridLayout.addWidget(self.pushButton, 0, 1, 1, 1)
self.comboBox = QtGui.QComboBox(self.gridLayoutWidget)
self.comboBox.setLayoutDirection(QtCore.Qt.RightToLeft)
self.comboBox.setObjectName(_fromUtf8("comboBox"))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.gridLayout.addWidget(self.comboBox, 1, 0, 1, 2)
self.textBrowser = QtGui.QTextBrowser(self.gridLayoutWidget)
self.textBrowser.setObjectName(_fromUtf8("textBrowser"))
self.gridLayout.addWidget(self.textBrowser, 2, 0, 1, 2)
self.label = QtGui.QLabel(self.gridLayoutWidget)
self.label.setObjectName(_fromUtf8("label"))
self.gridLayout.addWidget(self.label, 3, 1, 1, 1)
self.label_2 = QtGui.QLabel(self.gridLayoutWidget)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.gridLayout.addWidget(self.label_2, 4, 1, 1, 1)
self.worden = QtGui.QLineEdit(self.gridLayoutWidget)
self.worden.setObjectName(_fromUtf8("worden"))
self.gridLayout.addWidget(self.worden, 3, 0, 1, 1)
self.add_word = QtGui.QPushButton(self.gridLayoutWidget)
self.add_word.setObjectName(_fromUtf8("add_word"))
self.gridLayout.addWidget(self.add_word, 5, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 530, 29))
self.menubar.setObjectName(_fromUtf8("menubar"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.pushButton.setText(_translate("MainWindow", "ترجم", None))
self.comboBox.setItemText(0, _translate("MainWindow", "From en to ar", None))
self.comboBox.setItemText(1, _translate("MainWindow", "From ar to en", None))
self.label.setText(_translate("MainWindow", " الكلمة الانجليزية: ", None))
self.label_2.setText(_translate("MainWindow", " الكلمة العربية : ", None))
self.add_word.setText(_translate("MainWindow", "اضافة", None))
class Tran(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"), self.fromto)
QtCore.QObject.connect(self.ui.add_word, QtCore.SIGNAL("clicked()"), self.add_words)
def add_words(self):
try:
self.ui.textBrowser.clear()
worden = unicode(self.ui.worden.text())
wordar = unicode(self.ui.wordar.text())
w = [(worden, wordar)]
if worden!="" and wordar!="":
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("insert into dict(en, ar) values(?,?)", w[0])
sql.commit()
con.close()
sql.close()
self.ui.textBrowser.append("Done.")
except Exception, e:
print(e)
def entoar(self):
try:
self.ui.textBrowser.clear()
word = self.ui.lineEdit.text()
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("select * from dict")
words = con.fetchall()
for w in words:
if word == w[0]:
self.ui.textBrowser.append(w[1])
con.close()
sql.close()
except Exception,e:
print(e)
def artoen(self):
try:
self.ui.textBrowser.clear()
word = self.ui.lineEdit.text()
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("select * from dict")
words = con.fetchall()
for w in words:
if word == w[1]:
self.ui.textBrowser.append(w[0])
con.close()
sql.close()
except Exception,e:
print(e)
def fromto(self):
i = unicode(self.ui.comboBox.currentText())
if i =="From en to ar":
self.entoar()
else:
self.artoen()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
app.setStyleSheet(qdarkstyle.load_stylesheet())
myapp = Tran()
myapp.show()
sys.exit(app.exec_())صراحة أنا ليس لي معرفة بالربط بقواعد البيانات ممكن أساعدك بجمع الكلمات بالقاعدة بس أنتا أرفعها وتبقي دي مهمتي :)
تحتوي الواجهة على حقول لادخال كلمات جديدة
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("select * from dict")
con.close()
sql.close()هذه الاوامر التي استخدمتها للربط بقاعدة البيانات
في الامر
con.execute("select * from dict")تقوم باستخدام اوامر sql
حاول ان تضيف افكار جديد للبرنامج
ملاحظة : انا مبتدا لست خبير لا اتقن اي لغة برمجة لكن ابقى احاول حتى اجد حل لاي مشكلة
عندي مشكلة :-
ImportError: no module named qdarkstyle
ثانياً زر الأضافة لا يعمل ؟؟!
بالنسبة ImportError: no module named qdarkstyle
مكتبة qdarkstyle هي مجرد ثيم يمكن حذفها بمجرد حذف السطر
app.setStyleSheet(qdarkstyle.load_stylesheet())
ولا تنسى حذف
import qdarkstyle
او يمكن تنزيل الثيم من /index.php/topic/287452-qdarkstylesheet-%D8%AB%D9%8A%D9%85-%D8%AF%D8%A7%D9%83%D9%86-%D9%84%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA-pysidepyqt4/
لكي يعمل زر الاضافة يجب ان تكون انشات قاعدة بيانات
هذا الكود ينشا قاعدة بيانات
#! /usr/bin/python
# -*- coding: UTF-8 -*-
import sqlite3
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("create table dict (en text, ar text)")
sql.commit()
con.close()
sql.close()قم بوضعه مع البرنامج في نفس المجلد
تم تعديل هذه المشاركة بواسطة the.scorpion في 29 مارس 2014 في 12:56
تمام خلاص أنا هشتغل علي الكلمات وقاعدة البيانات وأنتا تشتغل علي التطوير لأني ليس لدي فى الواجهات الرسومية الا قليل من الخبرة
عندي لك سؤال لماذا لاتصنع الواجهات ببرنامج QtDesigner
وأقترح عليك أيضاً أن تقوم بعمل أتصال من جهاز المستخدم الي قاعدة البيانات الجديدة لتطوير البرنامج
عند البحث من العربية الي الانجليزية ؟؟؟؟؟
من الواجب علينا عمل الية لكي لا نحفظ هذه الكلمات مرة أخري من أجل العربية الي الانجليزية
انا استخدمت QtDesigner
اقتباس
من الواجب علينا عمل الية لكي لا نحفظ هذه الكلمات مرة أخري من أجل العربية الي الانجليزية
لم اقم بحفظ الكلمات الا مرة واحد لاحظ الكود
words = con.fetchall()
for w in words:
if word == w[0]:
self.ui.textBrowser.append(w[1]) words = con.fetchall()
for w in words:
if word == w[1]:
self.ui.textBrowser.append(w[0])w[0] تمثل الكلمة الانجليزية
w[1] تمثل الكلمة العربية
ما قمت به مجرد عملية تبديل
اقتباس
وأقترح عليك أيضاً أن تقوم بعمل أتصال من جهاز المستخدم الي قاعدة البيانات الجديدة لتطوير البرنامج
ممكن توضيح الفكره
تم تعديل هذه المشاركة بواسطة the.scorpion في 29 مارس 2014 في 19:30
قمت بتحسين الكود
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'qttran.ui'
#
# Created: Sat Mar 29 20:01:04 2014
# by: PyQt4 UI code generator 4.10
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
import sys, sqlite3
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(616, 459)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.gridLayout = QtGui.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.lineEdit = QtGui.QLineEdit(self.centralwidget)
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.gridLayout.addWidget(self.lineEdit, 0, 0, 1, 1)
self.add_word = QtGui.QPushButton(self.centralwidget)
self.add_word.setObjectName(_fromUtf8("add_word"))
self.gridLayout.addWidget(self.add_word, 5, 0, 1, 1)
self.translate = QtGui.QPushButton(self.centralwidget)
self.translate.setObjectName(_fromUtf8("translate"))
self.gridLayout.addWidget(self.translate, 0, 1, 1, 1)
self.label = QtGui.QLabel(self.centralwidget)
self.label.setObjectName(_fromUtf8("label"))
self.gridLayout.addWidget(self.label, 3, 1, 1, 1)
self.label_2 = QtGui.QLabel(self.centralwidget)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.gridLayout.addWidget(self.label_2, 4, 1, 1, 1)
self.word_en = QtGui.QLineEdit(self.centralwidget)
self.word_en.setObjectName(_fromUtf8("word_en"))
self.gridLayout.addWidget(self.word_en, 3, 0, 1, 1)
self.word_ar = QtGui.QLineEdit(self.centralwidget)
self.word_ar.setObjectName(_fromUtf8("word_ar"))
self.gridLayout.addWidget(self.word_ar, 4, 0, 1, 1)
self.comboBox = QtGui.QComboBox(self.centralwidget)
self.comboBox.setObjectName(_fromUtf8("comboBox"))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.gridLayout.addWidget(self.comboBox, 1, 0, 1, 2)
self.textBrowser = QtGui.QTextBrowser(self.centralwidget)
self.textBrowser.setObjectName(_fromUtf8("textBrowser"))
self.gridLayout.addWidget(self.textBrowser, 2, 0, 1, 2)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 616, 29))
self.menubar.setObjectName(_fromUtf8("menubar"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.add_word.setText(_translate("MainWindow", "اضافة", None))
self.translate.setText(_translate("MainWindow", "ترجم", None))
self.label.setText(_translate("MainWindow", "الكلمة الانجلزية :", None))
self.label_2.setText(_translate("MainWindow", "الكلمة العربية :", None))
self.comboBox.setItemText(0, _translate("MainWindow", "من الانجليزية الى العربية", None))
self.comboBox.setItemText(1, _translate("MainWindow", "من العربية الى الانجليزية", None))
class Tran(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.translate, QtCore.SIGNAL("clicked()"), self.fromto)
QtCore.QObject.connect(self.ui.add_word, QtCore.SIGNAL("clicked()"), self.add_words)
def add_words(self):
try:
self.ui.textBrowser.clear()
worden = unicode(self.ui.word_en.text())
wordar = unicode(self.ui.word_ar.text())
w = [(worden, wordar)]
if worden!="" and wordar!="":
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("insert into dict(en, ar) values(?,?)", w[0])
sql.commit()
con.close()
sql.close()
self.ui.textBrowser.append("Done.")
except Exception, e:
print(e)
def fromto(self):
i = unicode(self.ui.comboBox.currentText())
if i ==u"من الانجليزية الى العربية":
try:
self.ui.textBrowser.clear()
word = self.ui.lineEdit.text()
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("select * from dict")
words = con.fetchall()
for w in words:
if word == w[0]:
self.ui.textBrowser.append(w[1])
con.close()
sql.close()
except Exception,e:
print(e)
else:
try:
self.ui.textBrowser.clear()
word = self.ui.lineEdit.text()
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("select * from dict")
words = con.fetchall()
for w in words:
if word == w[1]:
self.ui.textBrowser.append(w[0])
con.close()
sql.close()
except Exception,e:
print(e)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = Tran()
myapp.show()
sys.exit(app.exec_())the.scorpion كتب:انا استخدمت QtDesigner
لم اقم بحفظ الكلمات الا مرة واحد لاحظ الكود
words = con.fetchall() for w in words: if word == w[0]: self.ui.textBrowser.append(w[1])words = con.fetchall() for w in words: if word == w[1]: self.ui.textBrowser.append(w[0])w[0] تمثل الكلمة الانجليزية
w[1] تمثل الكلمة العربية
ما قمت به مجرد عملية تبديل
كلام جميل للكلمة أكثر من معني صحيح ؟
لكن أذا أدخلت معني واحد لا ينتج شئ
لاحظ الصور:-



اقتباس
وأقترح عليك أيضاً أن تقوم بعمل أتصال من جهاز المستخدم الي قاعدة البيانات الجديدة لتطوير البرنامج
ممكن توضيح الفكره
أقصد عند تحديث البرنامج اذا قاعدة البيانات الخاصة بالكلمات قد تطورت بكلمات أكثر يطلب البرنامج بالتحديث للقاعدة ومن ثم يقوم بتنزيل قاعدة البيانات الجديدة من الانترنت
علي ما أعتقد أن فكرة تحديث القاعدة ممكن تحصل بدالة urllib2
حل مشكلة الكلمات هي تعديل الكود
for w in words:
if word == w[1]:
self.ui.textBrowser.append(w[0])ليصبح هكذا
for w in words:
wd = w[1].replace(" ", "").split(",")
if word in wd:
self.ui.textBrowser.append(w[0])اقتباس
علي ما أعتقد أن فكرة تحديث القاعدة ممكن تحصل بدالة urllib2
حاول كتابة الكود
تم تعديل هذه المشاركة بواسطة the.scorpion في 30 مارس 2014 في 01:57
البرنامج كدة بيقي يشتغل عربي الي انجليزي بس :excl: :(
الكود شغال عندي يبدو انك لم تعدل الكود كما يجب
هكذا تصبح الدالة بعد التعديل
def fromto(self):
i = unicode(self.ui.comboBox.currentText())
if i ==u"من الانجليزية الى العربية":
try:
self.ui.textBrowser.clear()
word = self.ui.lineEdit.text()
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("select * from dict")
words = con.fetchall()
for w in words:
if word == w[0]:
self.ui.textBrowser.append(w[1])
con.close()
sql.close()
except Exception,e:
print(e)
else:
try:
self.ui.textBrowser.clear()
word = self.ui.lineEdit.text()
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("select * from dict")
words = con.fetchall()
for w in words:
wd = w[1].replace(" ", "").split(",")
if word in wd:
self.ui.textBrowser.append(w[0])
con.close()
sql.close()
except Exception,e:
print(e)قمت بتعديل الكود قليلا
بقي ان اضافة خاصية الترجمة باستخدام شبكة الوب ان شاء الله ساعمل على هذا الموضوع (اتمنى ان اجد شخص يرشدنا لبداية الطريق)
dict.py
# -*- coding: utf-8 -*-
# dictionary
from PyQt4 import QtCore, QtGui
import sys, add, sqlite3
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(616, 459)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
self.gridLayout = QtGui.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.lineEdit = QtGui.QLineEdit(self.centralwidget)
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.gridLayout.addWidget(self.lineEdit, 0, 1, 1, 1)
self.translate = QtGui.QPushButton(self.centralwidget)
self.translate.setObjectName(_fromUtf8("translate"))
self.gridLayout.addWidget(self.translate, 0, 2, 1, 1)
self.add_word = QtGui.QPushButton(self.centralwidget)
self.add_word.setObjectName(_fromUtf8("add_word"))
self.gridLayout.addWidget(self.add_word, 0, 0, 1, 1)
self.comboBox = QtGui.QComboBox(self.centralwidget)
self.comboBox.setObjectName(_fromUtf8("comboBox"))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.comboBox.addItem(_fromUtf8(""))
self.gridLayout.addWidget(self.comboBox, 1, 0, 1, 3)
self.textBrowser = QtGui.QTextBrowser(self.centralwidget)
self.textBrowser.setObjectName(_fromUtf8("textBrowser"))
self.gridLayout.addWidget(self.textBrowser, 2, 0, 1, 3)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 616, 29))
self.menubar.setObjectName(_fromUtf8("menubar"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.translate.setText(_translate("MainWindow", "ترجم", None))
self.add_word.setText(_translate("MainWindow", "+", None))
self.comboBox.setItemText(0, _translate("MainWindow", "من الانجليزية الى العربية", None))
self.comboBox.setItemText(1, _translate("MainWindow", "من العربية الى الانجليزية", None))
self.comboBox.setItemText(2, _translate("MainWindow", "Google(en to ar)", None))
self.comboBox.setItemText(3, _translate("MainWindow", "Google(ar to en)", None))
class main(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QMainWindow.__init__(self)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.translate, QtCore.SIGNAL("clicked()"), self.fromto)
QtCore.QObject.connect(self.ui.add_word, QtCore.SIGNAL("clicked()"), self.framee)
def framee(self):
f = add.main()
f.show()
sys.exit(f.exec_())
def fromto(self):
i = unicode(self.ui.comboBox.currentText())
if i == u"من الانجليزية الى العربية":
try:
self.ui.textBrowser.clear()
word = self.ui.lineEdit.text().replace(" ", "")
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("select * from dict")
words = con.fetchall()
for w in words:
if word == w[0]:
self.ui.textBrowser.append(w[1])
con.close()
sql.close()
except Exception,e:
print(e)
elif i == u"من العربية الى الانجليزية":
try:
self.ui.textBrowser.clear()
word = self.ui.lineEdit.text().replace(" ", "")
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("select * from dict")
words = con.fetchall()
for w in words:
wd = w[1].replace(" ", "").split(",")
if word in wd:
self.ui.textBrowser.append(w[0])
con.close()
sql.close()
except Exception,e:
print(e)
elif i == "Google(en to ar)":
pass
elif i == "Google(ar to en)":
pass
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = main()
myapp.show()
sys.exit(app.exec_())add.py
# -*- coding: utf-8 -*-
# add-words
from PyQt4 import QtCore, QtGui
import sys, sqlite3
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Frame(object):
def setupUi(self, Frame):
Frame.setObjectName(_fromUtf8("Frame"))
Frame.resize(614, 138)
Frame.setFrameShape(QtGui.QFrame.StyledPanel)
Frame.setFrameShadow(QtGui.QFrame.Raised)
self.gridLayout = QtGui.QGridLayout(Frame)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.lineEdit = QtGui.QLineEdit(Frame)
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.gridLayout.addWidget(self.lineEdit, 0, 0, 1, 1)
self.lineEdit_2 = QtGui.QLineEdit(Frame)
self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2"))
self.gridLayout.addWidget(self.lineEdit_2, 1, 0, 1, 1)
self.label = QtGui.QLabel(Frame)
self.label.setObjectName(_fromUtf8("label"))
self.gridLayout.addWidget(self.label, 0, 1, 1, 1)
self.label_2 = QtGui.QLabel(Frame)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.gridLayout.addWidget(self.label_2, 1, 1, 1, 1)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.horizontalLayout.addItem(spacerItem)
self.cansel = QtGui.QPushButton(Frame)
self.cansel.setObjectName(_fromUtf8("cansel"))
self.horizontalLayout.addWidget(self.cansel)
spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.horizontalLayout.addItem(spacerItem1)
self.add_btn = QtGui.QPushButton(Frame)
self.add_btn.setObjectName(_fromUtf8("add_btn"))
self.horizontalLayout.addWidget(self.add_btn)
spacerItem2 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.horizontalLayout.addItem(spacerItem2)
self.gridLayout.addLayout(self.horizontalLayout, 2, 0, 1, 2)
self.retranslateUi(Frame)
QtCore.QObject.connect(self.cansel, QtCore.SIGNAL(_fromUtf8("clicked()")), Frame.close)
QtCore.QMetaObject.connectSlotsByName(Frame)
def retranslateUi(self, Frame):
Frame.setWindowTitle(_translate("Frame", "Frame", None))
self.label.setText(_translate("Frame", "الكلمة الانجليزية :", None))
self.label_2.setText(_translate("Frame", "الكلمة العربية :", None))
self.cansel.setText(_translate("Frame", "الغاء الامر", None))
self.add_btn.setText(_translate("Frame", "اضافة", None))
class main(QtGui.QFrame):
def __init__(self, parent = None):
QtGui.QFrame.__init__(self)
self.ui = Ui_Frame()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.add_btn, QtCore.SIGNAL("clicked()"), self.add_word)
def add_word(self):
try:
worden = unicode(self.ui.lineEdit.text())
wordar = unicode(self.ui.lineEdit_2.text())
w = [(worden, wordar)]
if worden!="" and wordar!="":
sql = sqlite3.connect("db.sq3")
con = sql.cursor()
con.execute("insert into dict(en, ar) values(?,?)", w[0])
sql.commit()
con.close()
sql.close()
except Exception, e:
print(e)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = main()
myapp.show()
sys.exit(app.exec_())تم تعديل هذه المشاركة بواسطة the.scorpion في 2 أبريل 2014 في 19:24
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…