سلام عليكم ورحمتة الله تعالى وبركاتة
استفساري اليوم هو كيف استطيع اربط كودات معمولة بلغة البايثون بواجهة رسومية مصممة بمصمم الكيوتي اصدارة 4.4.0 ؟
وجزاكم الله خير
سلام عليكم ورحمتة الله تعالى وبركاتة
استفساري اليوم هو كيف استطيع اربط كودات معمولة بلغة البايثون بواجهة رسومية مصممة بمصمم الكيوتي اصدارة 4.4.0 ؟
وجزاكم الله خير
اخي العزيز شكرا على الرد السريع والمقالة رائعة جدا لكن المقالة تشرح جزء بجزء في تكوين الواجهة الرسومية لكن كيف اقدر اجمع كل شي في ملف واحد بحيث تكون اجهتي الرسومية كلها مجمعة تحت ملف واحد؟
وجزاك الله خير
ubuntu-pro كتب:اخي العزيز شكرا على الرد السريع والمقالة رائعة جدا لكن المقالة تشرح جزء بجزء في تكوين الواجهة الرسومية لكن كيف اقدر اجمع كل شي في ملف واحد بحيث تكون اجهتي الرسومية كلها مجمعة تحت ملف واحد؟وجزاك الله خير
للاسف لم افهم سؤال حضرتك
eramax كتب:للاسف لم افهم سؤال حضرتك
اخي eramax
يمكن الأخ الكريم بيقصد طريقة عمل ملف Setup...
probably ...
[وسط]
♥ Countess ♥

♥
[/وسط]
اظنك عايز تحط ملف python المولد من ملف ال .ui بإستخدام pyuic داخل الملف الجديد اللى فيه الكلاس الجديد اللى هتشتق فيه الكود الأول ؟
لو كدا فينفع.. مباشرة تكتب الإتنين فى ملف واحد
ولكن غير مفضل الدمج الغير منطقى وكتابة كل الأكواد فى ملف واحد
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader
سلام عليكم يااخوان العفو منكم على الرد المتاخر انا كان قصدي من السؤال هو في المقالة الي اعطاني هي الاخ هو انة المطور كان يعلمك كيف تعمل ازرار ونوافذ لكن كل شي منفصل لكن انا كيف اقدر ابني بيحث كل الازرار والنوافذ واي شي احطة يكون في شكل واحد. مثلا انا اريد اوصل لهذي الواجهة الرسومية بحيت يكون كل اشي اعملة في واجهه واحدة
اتمنى انة الفكرة وصلت
طيب وايه المشكلة ؟؟
اللينك دا شرحت فيه ازاى تنشئ واجهة وتظبط ال Layouts فيها؟
http://programming-fr34ks.net/strikytutorials/startingqt.pdf
وراجع الموضوع دا عن التعامل مع الlayouts
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader
ubuntu-pro كتب:سلام عليكم يااخوان العفو منكم على الرد المتاخر انا كان قصدي من السؤال هو في المقالة الي اعطاني هي الاخ هو انة المطور كان يعلمك كيف تعمل ازرار ونوافذ لكن كل شي منفصل لكن انا كيف اقدر ابني بيحث كل الازرار والنوافذ واي شي احطة يكون في شكل واحد. مثلا انا اريد اوصل لهذي الواجهة الرسومية بحيت يكون كل اشي اعملة في واجهه واحدةاتمنى انة الفكرة وصلت
عليكم السلام, نعم اخي الفكرة وصلت و واضحة
سؤالك الكريم(محبرتو باللون الأحمر بالإقتباس)
بكل بساطة البرنامج الرسومي بواسطة Qt دون اعتبار اللغة, بيكون نافذة واحدة أو اكثر من نافذة widget. و لكن بخصوص سؤالك فإن (نموذجياً طبعاً) هناك انواع من النوافذ تُسمى بالحاويات containers و من ضمن هذه النوافذ هي QDialog او QMainWindow. هدول النافذتين (نموذجياً طبعاً) بنستعملهن لإنشاء نوافذ تضم ادوات رسومية اخرى داخلها(بالزبط متل البرنامج تبعك بالصورة) عبارة تقريباً عن QDialog يحتوي على مجموعة ادوات. هذه الأدوات ممكن بتكون متل الموجودة بالصورة السابقة بمشاركتك (زرارات, حقول نصية, ادوات انتقاء خيارية وووو). هذه الطريقة بتكون عن طريق كتابة صنف class يرث حاوية متل QMainWindow على سبيل المسال طبعاً مش للحصر. في هذا الصنف (داخل هذا الصنف يعني) نعمل ادوات المكونة لهالواجهة و نضمنها فيه متل الزرارات و الـ وووو...الخ
اقرأ الشيفرة التالية بدون التدقيق في التفاصيل.
البرنامج الموجود بالصورة بيستعمل QDialog, هيك شايفتو لأنو فيه زرارات للإنهاء و الإلغاء و ما فيه قوائم menus
طبعاً QDialog نفس المفهوم و الشيفرة بالزبط و لكن الوراثة من QDialog مش من QMainWindow.
موفق يارب
[وسط]
♥ Countess ♥

♥
[/وسط]
كنت ناسية شغلة مهمة (آسفة اخي)...
طبعاً طريقة ترتيب و تصفيف الأدوات الزغيرة متل الزرارات و الحقول النصية ووو داخل حاوية ما متل QDialog بيكون ببساطة بواسطة آلية تُسمى Layout Management.
طبعاً كل شيء بـ Qt عبارة عن اصناف classes حتى المسؤولة عن هذا الترتيب و التصفيف Layout و هي تلاتة اصناف:
QGridLayout
QHBoxLayout
QVBoxLayout
يعني اشهرن و بنستعملهن باستمرار بالبرامج و فكرتها بسيطة بالمرة ممكن بتراجع اي مقال او الوثائق الرسمية لـ Qt وبتقرأ بالتفصيل عن Layout Management.
موفق يارب
[وسط]
♥ Countess ♥

♥
[/وسط]
سلام عليكم
تشكرو يااخوان على مساعدتي الحمدلله قدرت اكون الواجهه الرسومية واحولها الى بايثون كلاس.
سؤالي الان واعذروني على الاطالة الان عندي الواجهه الرسومية لكنها غير فعالة وعندي functions في ملفات .py والي اقدر اشغلها من التيرمنال كيف اقدر اربط الازرار الموجودة في الواجهه الرسومية مع functions والي بعضها توصل الى اكثر من 100 سطر من الكودات
شكراَ
استخدام connect لتربط بين signal و slot "فى مصادر كتير اتذكرت فى الموضوع يكون كويس لو بصيت فيهم"
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader
عليكم السلام...
قامت Qt بابتكار آلية متطورة لعمل ربط بين الكائنات الموجودة بالرنامج هذه الآلية أو التقنية تُسمى Signals
and Slots.
بالنسبة لموضوعك (ربط الزرار لنداء دالة function و تنفيذها) تتم بواسطة ربط Signal معين خاص بالزرار في هذه الحالة هو clicked() بالـ Slot و هي في هذه الحالة ستكون الدالة function التي تريدها انت.
هذا الربط يتم بواسطة دالة تُسمى connect.
للحصول على الهيكل النحوي The syntax للدالة connect و كيفية ربط الكائنات بداخلها اطلع إلى درس تفصيلي بهذا الخصوص او راجع المرفقات التوثيقية الخاصة بـ Qt.
بخصوص آلية pyQt4 انتقل عبر الرابط التالي مباشرة.
الصفحة الرئيسية لـ pyQt4 documentation :
bye...
[وسط]
♥ Countess ♥

♥
[/وسط]
السلام عليكم و رحمة الله
الإخوة المشرفين على قسم Qt أطالب بنقل هذا الموضوع لقسم البايثون لمساعدته لإنتقاله إلى النور :rolleyes:
سبحانك اللهم و بحمدك ، أشهد أن لا إله إلا أنت ، أستغفرك ربي و أتوب إليك
محمد سمير كتب:السلام عليكم و رحمة اللهالإخوة المشرفين على قسم Qt أطالب بنقل هذا الموضوع لقسم البايثون لمساعدته لإنتقاله إلى النور :rolleyes:
كل موضوع ب دولار :P
اضن الاخ ما يقصد هذا و الله اعلم لانه في الوندوز وجدت Qt و فيها خاصية الرسم يعني ارسم زر و وو ... بدون اكواد
يعني برمجة مرئية لكن كيف اربط هذا زر بالكود هذا ما يريد ان يسأل عنه و الله اعلم
يعني مثل الفيجوال ستوديو سواء سي شارب او الفي بي دوت نت انت تضغط على الزر الي رسمته مرتين
يطلع مكان الكود و اللي كتبته هناك كحيعملو الزر
هذا الي فهمته انا تقريبا و الله اعلم
السلام عليكم و رحمة الله
أخي مصفوفة: غالي و الطلب رخيص, بس انت انقل المواضيع لقسم البايثون و اعطيك الدولارات :evil:
أخي DnS-LuNiX أظن الأخ السائل مدرك لأن البرنامج المستخدم designer و ليس IDE, للأسف لا يوجد IDE واحد للعمل مع المصمم و نافذة الكود (بايثون بالطبع) لكن يمكن ضمهم في محيط واحد هو eclipse لإستخدام مصمم Qt و محرر لبايثون (PyDev) في بيئة واحدة "لكن لازالوا غير متصلين ببعض فعلياً و ستضطر لترجمة ملفات ui بسطر الأوامر".
إن أصبت فمن الله و إن أخطأت فمن نفسي و من الشيطان.
سبحانك اللهم و بحمدك ، أشهد أن لا إله إلا أنت ، أستغفرك ربي و أتوب إليك
محمد سمير
مشكور اخوي على المعلومات
رغـد كتب:عليكم السلام...قامت Qt بابتكار آلية متطورة لعمل ربط بين الكائنات الموجودة بالرنامج هذه الآلية أو التقنية تُسمى Signals
and Slots.
بالنسبة لموضوعك (ربط الزرار لنداء دالة function و تنفيذها) تتم بواسطة ربط Signal معين خاص بالزرار في هذه الحالة هو clicked() بالـ Slot و هي في هذه الحالة ستكون الدالة function التي تريدها انت.
هذا الربط يتم بواسطة دالة تُسمى connect.
للحصول على الهيكل النحوي The syntax للدالة connect و كيفية ربط الكائنات بداخلها اطلع إلى درس تفصيلي بهذا الخصوص او راجع المرفقات التوثيقية الخاصة بـ Qt.
بخصوص آلية pyQt4 انتقل عبر الرابط التالي مباشرة.
الصفحة الرئيسية لـ pyQt4 documentation :
bye...
الاخت رغد
اشكرك على ردك المفصل والشكر ايضا لكل الاعضاء لكن ممكن تعطيني مثال بسيط كيف بتكون طريقة كتابة الربط لان الدالة موجودة على ملف .py هل بانسخ كل الكود او فقط بعطي المسار الى الدالة (i meant the syntax rules for writing such thing)
الان يوجد معي مشكلة جديدة والي هي الاصعب في مشروعي لانها اخذة اكثر الوقت الي هي شوف واجهتي الرسومية بعد التعديل مشكلة تحميل الصور الى البرنامج لكن لاااستطيع لانة مش عارف كيف اعمل براوس
الى ملفاتي الشخصية مشان اقدر احمل الصور المرادة انا عندي في الواجهة ملف وبعدها استدعاء صور لكن لايعمل شي وقد اطلعت على هذي اللينكات لكن لافائدة مااستطعت افهم شي
http://doc.trolltech.com/3.3/qfiledialog.html#QFileDialog
الان سؤالي كيف استطيع اجعل واجهتي الرسومية فعالة بحيث استطيع استكشاف ملفاتي على الكمبيوتر وتحميل الصور الى الواجهه الرسومية?
سؤالي الاخر بالنسبة ل سلوتس وكونيكت هل من اللازم اننا اعملها تعريف من مصصم الكيوتي نفسة او استطيع اعرفها من ملفي الرئيسي مثل الاتي?
import sys from photodb import Ui_MainWindow as UIMW from PyQt4 import QtCore, QtGui import urllib2 as ulib class MyWindow(QtGui.QMainWindow, UIMW): def __init__(self): QtGui.QMainWindow.__init__(self) self.setupUi(self) self.__setupConnections() def __setupConnections(self): pass def _addphotoClicked(self): pass def _addphototagClicked(self): pass def _searchphotoClicked(self): pass def _removephotoClicked(self): pass def _FinishClicked(self): pass def _cancelClicked(self): pass if __name__=="__main__": app=QtGui.QApplication(sys.argv) w=MyWindow() w.show() sys.exit(app.exec_())
تم تعديل هذه المشاركة بواسطة ubuntu-pro في 3 فبراير 2009 في 08:58
ubuntu-pro كتب:الاخت رغداشكرك على ردك المفصل والشكر ايضا لكل الاعضاء لكن ممكن تعطيني مثال بسيط كيف بتكون طريقة كتابة الربط لان الدالة موجودة على ملف .py هل بانسخ كل الكود او فقط بعطي المسار الى الدالة (i meant the syntax rules for writing such thing)
عفواً اخي,,, و آسفة لتأخري عن الموضوع
Ok, I'll tell you about those rules with a simple example as well...
الشيفرة التالية عبارة عن QDialog تتضمن زرارين ورقعة نصية label. رايدتك بس تطلع بالتلميحات مش تهتم لباقي الشيفرة ابداً.
لاحظ كيف عم نستخدم الدوال methods كـ slots عادية طبعاً بدون تضمين الأقواس في الدالة connect. بخصوص الهيكل النحوي syntax لعملية الربط كالتالي:
السطر التالي موجود بالشيفرة فوق مع الدالة العامة
globalF().
s.connect(w, SIGNAL("signalSignature"), functionName)
السطر التالي بالزبط متل الربط مع self.sayHi() بالشيفرة فوق...
s.connect(w, SIGNAL("signalSignature"), instance.methodName)
السطر التالي بيكون في حالة الربط بين
PyQt signal with PyQt slot
يعني لما بتكون الكائنات هي معرّفة مسبقاً بواسطة PyQt نفسا...
s.connect(w, SIGNAL("signalSignature"),instance, SLOT("slotSignature"))
طبعاً s في الهياكل النحوية السابقة هي self, و w هي الكائن اللي بيرسل الـ signal و الأشياء الآخيرة هي slot إما بتكون دالة عامة او method معمول بقلب الصنف او slot تابع لكائن معرّف مسبقاً بالـ PyQt متل QLabel' slots أو QPushButton' slots ... etc.
و انت بتقدر تعمل import و للـ module و بتستعمل الدوال الموجودة بنفس الطريقة.
ملاحظة مهمة:
بخصوص signalSignature لازم بيكون بينات علامة التنصيص و بيكون نحوياً syntactically متل C++/Qt و بالتحديد لما بيكون الإقتراح يحتوي على علامة المؤشر (*). بإمكان تتجاهل كلمة const أو علامة المرجع (&). و أيضاً شغلة مهمة بأن تكتب نوع البينات بالإقتراح داخل الأقواس متل انواع البيانات C++/Qt.
,.,.,.,.,.,.,.,.,.,.
آسفة اخي بخصوص باقي المشكلة تبعتك ممكن بيساعدوك اخواني بالمنتدى.
confused...
bye
:happy:
[وسط]
♥ Countess ♥

♥
[/وسط]
اقتباسالان سؤالي كيف استطيع اجعل واجهتي الرسومية فعالة بحيث استطيع استكشاف ملفاتي على الكمبيوتر وتحميل الصور الى الواجهه الرسومية?
بإنك تكتب الكود وتربط ال slots المناسبة -الا لو انت بتسأل عن الكود نفسه- كدا هيكون برنامج فعال :D
اقتباسسؤالي الاخر بالنسبة ل سلوتس وكونيكت هل من اللازم اننا اعملها تعريف من مصصم الكيوتي نفسة او استطيع اعرفها من ملفي الرئيسي مثل الاتي?
لا مش لازم بالعكس يفضل انك تعرفها فى ملف ال .py كأى callback عادية والربط بإستخدام connect
تم تعديل هذه المشاركة بواسطة ahmed_youssef في 7 فبراير 2009 في 09:24
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader
رغـد كتب:عفواً اخي,,, و آسفة لتأخري عن الموضوعOk, I'll tell you about those rules with a simple example as well...
الشيفرة التالية عبارة عن QDialog تتضمن زرارين ورقعة نصية label. رايدتك بس تطلع بالتلميحات مش تهتم لباقي الشيفرة ابداً.
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * #The following is just a
global function which can be #treated as a slot with no any additional syntax... def globalF():
print "Hello, from global function to shell" class Example(QDialog): def __init_
_(self, parent = None): super(Example, self).__init__(parent) #create and lay
out widgets... self.label = QLabel("...") button1 = QPushButton('Say hi')
button2 = QPushButton('Say Hello') layout = QVBoxLayout() layout.addWidget
(self.label) layout.addWidget(button1) layout.addWidget(button2) self.s
etLayout(layout) self.setWindowTitle('SignalSlot') #connect using signal an
d slot mechanism #connect button1 to call self.sayHi method as a slot self.co
nnect(button1, SIGNAL("clicked()"), self.sayHi) #Here we connect button2 with globa
lF as a slot as well... #You can import your own module(s) and then connect #it
s/their global function(s) this way... self.connect(button2, SIGNAL("clicked()"), glo
balF) #def methode(s) #All Python methods can be treated as slots. #N
ote that we needn't any extra syntax to define slot(s). #They are just regular python f
unctions/methods... def sayHi(self): self.label.setText("Hi, my name is R...")
def main(): app = QApplication(sys.argv) example = Example() example.show
() app.exec_() if __name__ == '__main__': main()لاحظ كيف عم نستخدم الدوال methods كـ slots عادية طبعاً بدون تضمين الأقواس في الدالة connect. بخصوص الهيكل النحوي syntax لعملية الربط كالتالي:
LEFT TO RIGHTالسطر التالي موجود بالشيفرة فوق مع الدالة العامة
globalF().
s.connect(w, SIGNAL("signalSignature"), functionName)
السطر التالي بالزبط متل الربط مع self.sayHi() بالشيفرة فوق...
s.connect(w, SIGNAL("signalSignature"), instance.methodName)
السطر التالي بيكون في حالة الربط بين
PyQt signal with PyQt slot
يعني لما بتكون الكائنات هي معرّفة مسبقاً بواسطة PyQt نفسا...
s.connect(w, SIGNAL("signalSignature"),instance, SLOT("slotSignature"))
طبعاً s في الهياكل النحوية السابقة هي self, و w هي الكائن اللي بيرسل الـ signal و الأشياء الآخيرة هي slot إما بتكون دالة عامة او method معمول بقلب الصنف او slot تابع لكائن معرّف مسبقاً بالـ PyQt متل QLabel' slots أو QPushButton' slots ... etc.
و انت بتقدر تعمل import و للـ module و بتستعمل الدوال الموجودة بنفس الطريقة.
ملاحظة مهمة:
بخصوص signalSignature لازم بيكون بينات علامة التنصيص و بيكون نحوياً syntactically متل C++/Qt و بالتحديد لما بيكون الإقتراح يحتوي على علامة المؤشر (*). بإمكان تتجاهل كلمة const أو علامة المرجع (&). و أيضاً شغلة مهمة بأن تكتب نوع البينات بالإقتراح داخل الأقواس متل انواع البيانات C++/Qt.
,.,.,.,.,.,.,.,.,.,.
آسفة اخي بخصوص باقي المشكلة تبعتك ممكن بيساعدوك اخواني بالمنتدى.
confused...
bye
:happy:
ان اسف لكن مضطر اكتب بالانجليزي مشان انا مش فاهم المصطلحات بالعربي
first of all thank you. after your detailed explanation i am clear on how signals and slots work but not on how to import my function.py and use it in signal and slots environment..
maybe this is too much to seek out but i am wondering if you can create a function and save it into .py file and then try using it in a signal and slot environment in which whenever you click a button your function in the .py file will be executed and displayed.
for my second problem...please have a look on my interface
Now i have the interface with the ability to browse my directory but whenever i try to click on any file and try to load it into my interface i got an error saying that listview is not callable, please read the code of my main function (wrapper of my pyuic4 generated codes) and take a close look on the bold hint in there.
import sys
#import shutil
from test import Ui_MainWindow as UIMW
from PyQt4 import QtCore, QtGui
import urllib2 as ulib
class MyWindow(QtGui.QMainWindow, UIMW):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setupUi(self)
self.__setupConnections()
def __setupConnections(self):
#self.connect(self.addphoto, QtCore.SIGNAL("clicked()") ,self._addphotoClicked)
self.connect(self.addphotoandtag, QtCore.SIGNAL("clicked()") ,self._addphotoandtagClicked)
self.connect(self.removephoto, QtCore.SIGNAL("clicked()") ,self._removephotoClicked)
self.connect(self.searchphoto, QtCore.SIGNAL("clicked()" ) ,self._searchphotoClicked)
self.connect(self.cancel, QtCore.SIGNAL("clicked()"), self._cancelClicked)
self.connect(self.actionImport_Photos, QtCore.SIGNAL("triggered()") , self._actionImport_Photos)
self.connect(self.actionExit, QtCore.SIGNAL("triggered()"), self._actionExit)
#self.connect(self.listView, QtCore.SIGNAL("triggered"), self._listView)
#self.connect(self.addphoto, SIGNAL("clicked()"), self._addphoto)
def _addphoto(self):
pass
def _addphotoandtagClicked(self):
pass
def _searchphotoClicked(self):
pass
def _removephotoClicked(self):
pass
def _FinishClicked(self):
pass
def _cancelClicked(self):
pass
def _actionImport_Photos(self):
<b>filename = QtGui.QFileDialog.getOpenFileName(self, 'Import Photo', '/home/')#, tr('Images (*.png *.xpm *.jpg)'));
self.listView(filename) this is the function used to call up the file browser, how can i hook it up with Viewlist item
</b>
def listView():
self.item.append(QlistViewitem(self.tree, 'filename'))
#self.items=[]
#self.item.append(QlistViewitem(self.tree, 'filename'))
# file=open(filename)
#data = file.read()
#print data
#self.photosdisplay.read(data)
def _actionExit(self):
pass
#class Import_Photos(QtGui.QMainWindow, UIMW):
if __name__=="__main__":
app=QtGui.QApplication(sys.argv)
w=MyWindow()
w.show()
sys.exit(app.exec_())وهذا الكود المنتج الى كودات بايثون بعد استخدام مصمم الكيوتي
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'photodatabase(M).ui'
#
# Created: Thu Feb 5 14:27:58 2009
# by: PyQt4 UI code generator 4.3.3
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(QtCore.QSize(QtCore.QRect(0,0,908,616).size()).expandedTo(MainWindow.minimumSizeHint()))
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setGeometry(QtCore.QRect(0,36,908,558))
self.centralwidget.setObjectName("centralwidget")
self.photosdisplay = QtGui.QGraphicsView(self.centralwidget)
self.photosdisplay.setWindowModality(QtCore.Qt.NonModal)
self.photosdisplay.setGeometry(QtCore.QRect(200,20,451,192))
self.photosdisplay.setObjectName("photosdisplay")
self.addphoto = QtGui.QPushButton(self.centralwidget)
self.addphoto.setWindowModality(QtCore.Qt.NonModal)
self.addphoto.setGeometry(QtCore.QRect(12,220,80,27))
self.addphoto.setObjectName("addphoto")
self.tagfield = QtGui.QLineEdit(self.centralwidget)
self.tagfield.setWindowModality(QtCore.Qt.NonModal)
self.tagfield.setGeometry(QtCore.QRect(230,220,421,27))
self.tagfield.setObjectName("tagfield")
self.options = QtGui.QComboBox(self.centralwidget)
self.options.setWindowModality(QtCore.Qt.NonModal)
self.options.setGeometry(QtCore.QRect(97,300,56,26))
self.options.setObjectName("options")
self.searchquery = QtGui.QLineEdit(self.centralwidget)
self.searchquery.setWindowModality(QtCore.Qt.NonModal)
self.searchquery.setGeometry(QtCore.QRect(159,300,501,27))
self.searchquery.setObjectName("searchquery")
self.searchphoto = QtGui.QPushButton(self.centralwidget)
self.searchphoto.setWindowModality(QtCore.Qt.NonModal)
self.searchphoto.setGeometry(QtCore.QRect(11,300,80,27))
self.searchphoto.setObjectName("searchphoto")
self.Finish = QtGui.QPushButton(self.centralwidget)
self.Finish.setWindowModality(QtCore.Qt.NonModal)
self.Finish.setGeometry(QtCore.QRect(10,520,111,31))
self.Finish.setObjectName("Finish")
self.searchresult = QtGui.QTextBrowser(self.centralwidget)
self.searchresult.setWindowModality(QtCore.Qt.NonModal)
self.searchresult.setGeometry(QtCore.QRect(200,330,461,183))
self.searchresult.setObjectName("searchresult")
self.removephoto = QtGui.QPushButton(self.centralwidget)
self.removephoto.setWindowModality(QtCore.Qt.NonModal)
self.removephoto.setGeometry(QtCore.QRect(10,260,80,27))
self.removephoto.setObjectName("removephoto")
self.cancel = QtGui.QPushButton(self.centralwidget)
self.cancel.setWindowModality(QtCore.Qt.NonModal)
self.cancel.setGeometry(QtCore.QRect(550,520,111,31))
self.cancel.setObjectName("cancel")
self.addphotoandtag = QtGui.QPushButton(self.centralwidget)
self.addphotoandtag.setWindowModality(QtCore.Qt.NonModal)
self.addphotoandtag.setGeometry(QtCore.QRect(98,220,126,27))
self.addphotoandtag.setObjectName("addphotoandtag")
self.label = QtGui.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(290,270,181,18))
self.label.setObjectName("label")
self.calendarWidget = QtGui.QCalendarWidget(self.centralwidget)
self.calendarWidget.setGeometry(QtCore.QRect(670,330,221,170))
self.calendarWidget.setObjectName("calendarWidget")
self.listView = QtGui.QListView(self.centralwidget)
self.listView.setGeometry(QtCore.QRect(10,20,181,192))
self.listView.setObjectName("listView")
self.listView_2 = QtGui.QListView(self.centralwidget)
self.listView_2.setGeometry(QtCore.QRect(10,330,181,181))
self.listView_2.setObjectName("listView_2")
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setGeometry(QtCore.QRect(0,594,908,22))
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0,0,908,25))
self.menubar.setObjectName("menubar")
self.menuFile = QtGui.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
MainWindow.setMenuBar(self.menubar)
self.toolBar = QtGui.QToolBar(MainWindow)
self.toolBar.setGeometry(QtCore.QRect(0,25,11,11))
self.toolBar.setObjectName("toolBar")
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea,self.toolBar)
self.toolBar_2 = QtGui.QToolBar(MainWindow)
self.toolBar_2.setGeometry(QtCore.QRect(11,25,897,11))
self.toolBar_2.setObjectName("toolBar_2")
MainWindow.addToolBar(QtCore.Qt.TopToolBarArea,self.toolBar_2)
self.actionImport_Photos = QtGui.QAction(MainWindow)
self.actionImport_Photos.setObjectName("actionImport_Photos")
self.actionExit = QtGui.QAction(MainWindow)
self.actionExit.setObjectName("actionExit")
self.menuFile.addSeparator()
self.menuFile.addAction(self.actionImport_Photos)
self.menuFile.addSeparator()
self.menuFile.addAction(self.actionExit)
self.menubar.addAction(self.menuFile.menuAction())
self.retranslateUi(MainWindow)
QtCore.QObject.connect(self.cancel,QtCore.SIGNAL("clicked()"),MainWindow.close)
QtCore.QObject.connect(self.Finish,QtCore.SIGNAL("clicked()"),MainWindow.update)
QtCore.QObject.connect(self.addphotoandtag,QtCore.SIGNAL("clicked()"),self.tagfield.update)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8))
self.addphoto.setText(QtGui.QApplication.translate("MainWindow", "Add Photo", None, QtGui.QApplication.UnicodeUTF8))
self.options.addItem(QtGui.QApplication.translate("MainWindow", "Date", None, QtGui.QApplication.UnicodeUTF8))
self.options.addItem(QtGui.QApplication.translate("MainWindow", "Tag", None, QtGui.QApplication.UnicodeUTF8))
self.searchphoto.setText(QtGui.QApplication.translate("MainWindow", "Search BY", None, QtGui.QApplication.UnicodeUTF8))
self.Finish.setText(QtGui.QApplication.translate("MainWindow", "Finish", None, QtGui.QApplication.UnicodeUTF8))
self.searchresult.setHtml(QtGui.QApplication.translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'Sans Serif\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))
self.removephoto.setText(QtGui.QApplication.translate("MainWindow", "Remove", None, QtGui.QApplication.UnicodeUTF8))
self.cancel.setText(QtGui.QApplication.translate("MainWindow", "Cancel", None, QtGui.QApplication.UnicodeUTF8))
self.addphotoandtag.setText(QtGui.QApplication.translate("MainWindow", "Add Photo and give Tag", None, QtGui.QApplication.UnicodeUTF8))
self.label.setText(QtGui.QApplication.translate("MainWindow", "Date search formate d-m-y", None, QtGui.QApplication.UnicodeUTF8))
self.menuFile.setTitle(QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8))
self.toolBar.setWindowTitle(QtGui.QApplication.translate("MainWindow", "toolBar", None, QtGui.QApplication.UnicodeUTF8))
self.toolBar_2.setWindowTitle(QtGui.QApplication.translate("MainWindow", "toolBar_2", None, QtGui.QApplication.UnicodeUTF8))
self.actionImport_Photos.setText(QtGui.QApplication.translate("MainWindow", "Import Photos", None, QtGui.QApplication.UnicodeUTF8))
self.actionExit.setText(QtGui.QApplication.translate("MainWindow", "Exit", None, QtGui.QApplication.UnicodeUTF8))Thank you
تم تعديل هذه المشاركة بواسطة ubuntu-pro في 7 فبراير 2009 في 10:54
ubuntu-pro كتب:ان اسف لكن مضطر اكتب بالانجليزي مشان انا مش فاهم المصطلحات بالعربيfirst of all thank you. after your detailed explanation i am clear on how signals and slots work but not on how to import my function.py and use it in signal and slots environment..
maybe this is too much to seek out but i am wondering if you can create a function and save it into .py file and then try using it in a signal and slot environment in which whenever you click a button your function in the .py file will be executed and displayed.
for my second problem...please have a look on my interface
Thank you
You're welcome...
I was expecting that you'd basic knowledge about python such as how to import modules and blah blah blah...
Then you should be wondering because Python itself is a wonderful language indeed, and it's flexible more than you may expect. It was one of my interests when I was a little girl (16) in Australia, of course I've refreshed my memory of it recently...
Back to the nitty-gritty :
Just trust Python to do its job, just import your own module(s) correctly and call its/their functions/methods as slots.
How to use import in Python?
There are two ways... At least typically...
About the second portion of your problem!!!
it's really time consuming and.... !!!
آسفة اخي, ممكن اخواني بالمنتدى بيساعدوك
bye
:happy:
تم تعديل هذه المشاركة بواسطة رغـد في 7 فبراير 2009 في 12:57
[وسط]
♥ Countess ♥

♥
[/وسط]
رغـد كتب:You're welcome...I was excpecting that you've got basic knowledge about python such as how to import modules and blah blah blah...
Then you should be wondering because Python itself is a wonderful language indeed, and it's flexible more than you may excpect. It was one of my interests when I was a little girl (16) in Australia, of course I've refreshed my memory of it recently...
Back to the nitty-gritty :
Just trust Python to do its job, just import your own module(s) correctly and call its/their functions/methods as slots.
How to use import in Python?
There are two ways... At least typically...
#The first... #just like this... import myModule #Then you have to use the dot to #access a
ny item related to that module. #Such as calling a function defined within that module. myModul
e.function1() #The Second... #We using from...import * syntax as the following: form myModu
l import * #Now you can call function1 without the module name...dot function1()About the second portion of your problem!!!
it's realy time consuming and.... !!!
آسفة اخي, ممكن اخواني بالمنتدى بيساعدوك
bye
:happy:
Thank you
well, i am still new to python, so excuse my ignorance but the reason of asking for vivid example of using modules between SIGNALS and SLOTS because whenever i try to import the desired module to codes, it gets executed even before trying to assign it between SIGNALS and SLOTS. my main aim of the example is the correct syntax on how to assign module to be executed between SIGNALS AND SLOTS
thanks in advance
تم تعديل هذه المشاركة بواسطة ubuntu-pro في 7 فبراير 2009 في 13:06
ubuntu-pro كتب:Thank youwell, i am still new to python, so excuse my ignorance but the reason of asking for vivid example because whenever i try to import the desired module to codes, it gets executed even before trying to assign it between SIGNALS and SLOTS.
thanks in advance
don't worry, naturally we are full of ignorance and there is no excuse for that...:happy:
,.,.,.,.,..,,..,.,,.
Don't worry agian about the execuation, the module that executes but the functions never be executed without an explicit calling and the classes as well.
,.,.,.,.,.,.,.,.,.,.
You're welcome...
[وسط]
♥ Countess ♥

♥
[/وسط]