• 0
ubuntu-pro

كودات البايثون و مصمم الكيوتي

سؤال

سلام عليكم ورحمتة الله تعالى وبركاتة

استفساري اليوم هو كيف استطيع اربط كودات معمولة بلغة البايثون بواجهة رسومية مصممة بمصمم الكيوتي اصدارة 4.4.0 ؟

وجزاكم الله خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

32 إجابة على هذا السؤال .

  • 0

اخي العزيز شكرا على الرد السريع والمقالة رائعة جدا لكن المقالة تشرح جزء بجزء في تكوين الواجهة الرسومية لكن كيف اقدر اجمع كل شي في ملف واحد بحيث تكون اجهتي الرسومية كلها مجمعة تحت ملف واحد؟

وجزاك الله خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
اخي العزيز شكرا على الرد السريع والمقالة رائعة جدا لكن المقالة تشرح جزء بجزء في تكوين الواجهة الرسومية لكن كيف اقدر اجمع كل شي في ملف واحد بحيث تكون اجهتي الرسومية كلها مجمعة تحت ملف واحد؟

وجزاك الله خير

للاسف لم افهم سؤال حضرتك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
للاسف لم افهم سؤال حضرتك

اخي eramax

يمكن الأخ الكريم بيقصد طريقة عمل ملف Setup...

probably ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اظنك عايز تحط ملف python المولد من ملف ال .ui بإستخدام pyuic داخل الملف الجديد اللى فيه الكلاس الجديد اللى هتشتق فيه الكود الأول ؟

لو كدا فينفع.. مباشرة تكتب الإتنين فى ملف واحد

ولكن غير مفضل الدمج الغير منطقى وكتابة كل الأكواد فى ملف واحد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سلام عليكم يااخوان العفو منكم على الرد المتاخر انا كان قصدي من السؤال هو في المقالة الي اعطاني هي الاخ هو انة المطور كان يعلمك كيف تعمل ازرار ونوافذ لكن كل شي منفصل لكن انا كيف اقدر ابني بيحث كل الازرار والنوافذ واي شي احطة يكون في شكل واحد. مثلا انا اريد اوصل لهذي الواجهة الرسومية بحيت يكون كل اشي اعملة في واجهه واحدة

post-176755-1232597475_thumb.png

اتمنى انة الفكرة وصلت

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

طيب وايه المشكلة ؟؟

اللينك دا شرحت فيه ازاى تنشئ واجهة وتظبط ال Layouts فيها؟

http://programming-fr34ks.net/strikytutorials/startingqt.pdf

وراجع الموضوع دا عن التعامل مع الlayouts

http://qt-ar.org/lessons/show18.html

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
سلام عليكم يااخوان العفو منكم على الرد المتاخر انا كان قصدي من السؤال هو في المقالة الي اعطاني هي الاخ هو انة المطور كان يعلمك كيف تعمل ازرار ونوافذ لكن كل شي منفصل لكن انا كيف اقدر ابني بيحث كل الازرار والنوافذ واي شي احطة يكون في شكل واحد. مثلا انا اريد اوصل لهذي الواجهة الرسومية بحيت يكون كل اشي اعملة في واجهه واحدة

اتمنى انة الفكرة وصلت

عليكم السلام, نعم اخي الفكرة وصلت و واضحة

سؤالك الكريم(محبرتو باللون الأحمر بالإقتباس)

بكل بساطة البرنامج الرسومي بواسطة Qt دون اعتبار اللغة, بيكون نافذة واحدة أو اكثر من نافذة widget. و لكن بخصوص سؤالك فإن (نموذجياً طبعاً) هناك انواع من النوافذ تُسمى بالحاويات containers و من ضمن هذه النوافذ هي QDialog او QMainWindow. هدول النافذتين (نموذجياً طبعاً) بنستعملهن لإنشاء نوافذ تضم ادوات رسومية اخرى داخلها(بالزبط متل البرنامج تبعك بالصورة) عبارة تقريباً عن QDialog يحتوي على مجموعة ادوات. هذه الأدوات ممكن بتكون متل الموجودة بالصورة السابقة بمشاركتك (زرارات, حقول نصية, ادوات انتقاء خيارية وووو). هذه الطريقة بتكون عن طريق كتابة صنف class يرث حاوية متل QMainWindow على سبيل المسال طبعاً مش للحصر. في هذا الصنف (داخل هذا الصنف يعني) نعمل ادوات المكونة لهالواجهة و نضمنها فيه متل الزرارات و الـ وووو...الخ

اقرأ الشيفرة التالية بدون التدقيق في التفاصيل.

انسخ الكود
  1.  
  2.  
  3. class MyWindow(QMainWindow): #لاحظ هون بنعمل صنف لحاوية نافذة رئيسية بواسطة الوراثة
  4. def __init__(self):
  5.  
  6. self.button1 = QPushButton() #راقب اضفنا زرار داخل الصنف للنافذة الرئيسية بالضبط تقريبا
    ً متل البرنامج بالصورة
  7.  
  8. self.button2 = QPushButton() #ايضاً زرار تاني
  9. self.label = QLabel() #مش بس زرارات اي اداة تانية ممكن
  10. :
  11.  
  12.  
  13.  
  14. app = QApplication(sys.arg)
  15.  
  16. window = MyWindow(...) #في البرنامج الرئيسي بنعمل كائن لصنف تبعنا اللي عملناه سابقاً و كل الأدو
    ات موجودة بداخله
  17. window.show()
  18. app.exec_()
  19.  

البرنامج الموجود بالصورة بيستعمل QDialog, هيك شايفتو لأنو فيه زرارات للإنهاء و الإلغاء و ما فيه قوائم menus

طبعاً QDialog نفس المفهوم و الشيفرة بالزبط و لكن الوراثة من QDialog مش من QMainWindow.

موفق يارب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كنت ناسية شغلة مهمة (آسفة اخي)...

طبعاً طريقة ترتيب و تصفيف الأدوات الزغيرة متل الزرارات و الحقول النصية ووو داخل حاوية ما متل QDialog بيكون ببساطة بواسطة آلية تُسمى Layout Management.

طبعاً كل شيء بـ Qt عبارة عن اصناف classes حتى المسؤولة عن هذا الترتيب و التصفيف Layout و هي تلاتة اصناف:

QGridLayout

QHBoxLayout

QVBoxLayout

يعني اشهرن و بنستعملهن باستمرار بالبرامج و فكرتها بسيطة بالمرة ممكن بتراجع اي مقال او الوثائق الرسمية لـ Qt وبتقرأ بالتفصيل عن Layout Management.

موفق يارب

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سلام عليكم

تشكرو يااخوان على مساعدتي الحمدلله قدرت اكون الواجهه الرسومية واحولها الى بايثون كلاس.

سؤالي الان واعذروني على الاطالة الان عندي الواجهه الرسومية لكنها غير فعالة وعندي functions في ملفات .py والي اقدر اشغلها من التيرمنال كيف اقدر اربط الازرار الموجودة في الواجهه الرسومية مع functions والي بعضها توصل الى اكثر من 100 سطر من الكودات

شكراَ

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

استخدام connect لتربط بين signal و slot "فى مصادر كتير اتذكرت فى الموضوع يكون كويس لو بصيت فيهم"

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عليكم السلام...

قامت Qt بابتكار آلية متطورة لعمل ربط بين الكائنات الموجودة بالرنامج هذه الآلية أو التقنية تُسمى Signals

and Slots.

بالنسبة لموضوعك (ربط الزرار لنداء دالة function و تنفيذها) تتم بواسطة ربط Signal معين خاص بالزرار في هذه الحالة هو clicked() بالـ Slot و هي في هذه الحالة ستكون الدالة function التي تريدها انت.

هذا الربط يتم بواسطة دالة تُسمى connect.

للحصول على الهيكل النحوي The syntax للدالة connect و كيفية ربط الكائنات بداخلها اطلع إلى درس تفصيلي بهذا الخصوص او راجع المرفقات التوثيقية الخاصة بـ Qt.

بخصوص آلية pyQt4 انتقل عبر الرابط التالي مباشرة.

هنا

الصفحة الرئيسية لـ pyQt4 documentation :

هنا

bye...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم و رحمة الله

الإخوة المشرفين على قسم Qt أطالب بنقل هذا الموضوع لقسم البايثون لمساعدته لإنتقاله إلى النور :rolleyes:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
السلام عليكم و رحمة الله

الإخوة المشرفين على قسم Qt أطالب بنقل هذا الموضوع لقسم البايثون لمساعدته لإنتقاله إلى النور :rolleyes:

كل موضوع ب دولار :P

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اضن الاخ ما يقصد هذا و الله اعلم لانه في الوندوز وجدت Qt و فيها خاصية الرسم يعني ارسم زر و وو ... بدون اكواد

يعني برمجة مرئية لكن كيف اربط هذا زر بالكود هذا ما يريد ان يسأل عنه و الله اعلم

يعني مثل الفيجوال ستوديو سواء سي شارب او الفي بي دوت نت انت تضغط على الزر الي رسمته مرتين

يطلع مكان الكود و اللي كتبته هناك كحيعملو الزر

هذا الي فهمته انا تقريبا و الله اعلم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم و رحمة الله

أخي مصفوفة: غالي و الطلب رخيص, بس انت انقل المواضيع لقسم البايثون و اعطيك الدولارات :evil:

أخي DnS-LuNiX أظن الأخ السائل مدرك لأن البرنامج المستخدم designer و ليس IDE, للأسف لا يوجد IDE واحد للعمل مع المصمم و نافذة الكود (بايثون بالطبع) لكن يمكن ضمهم في محيط واحد هو eclipse لإستخدام مصمم Qt و محرر لبايثون (PyDev) في بيئة واحدة "لكن لازالوا غير متصلين ببعض فعلياً و ستضطر لترجمة ملفات ui بسطر الأوامر".

إن أصبت فمن الله و إن أخطأت فمن نفسي و من الشيطان.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

محمد سمير

مشكور اخوي على المعلومات

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
عليكم السلام...

قامت 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

post-176755-1233636474_thumb.png

الان سؤالي كيف استطيع اجعل واجهتي الرسومية فعالة بحيث استطيع استكشاف ملفاتي على الكمبيوتر وتحميل الصور الى الواجهه الرسومية?

سؤالي الاخر بالنسبة ل سلوتس وكونيكت هل من اللازم اننا اعملها تعريف من مصصم الكيوتي نفسة او استطيع اعرفها من ملفي الرئيسي مثل الاتي?

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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
الاخت رغد

اشكرك على ردك المفصل والشكر ايضا لكل الاعضاء لكن ممكن تعطيني مثال بسيط كيف بتكون طريقة كتابة الربط لان الدالة موجودة على ملف .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. رايدتك بس تطلع بالتلميحات مش تهتم لباقي الشيفرة ابداً.

انسخ الكود
  1.  
  2. import sys
  3. from PyQt4.QtCore import *
  4. from PyQt4.QtGui import *
  5.  
  6.  
  7. #The following is just a global function which can be
  8. #treated as a slot with no any additional syntax...
  9. def globalF():
  10. print "Hello, from global function to shell"
  11.  
  12.  
  13.  
  14. class Example(QDialog):
  15. def __init__(self, parent = None):
  16. super(Example, self).__init__(parent)
  17.  
  18. #create and layout widgets...
  19. self.label = QLabel("...")
  20. button1 = QPushButton('Say hi')
  21. button2 = QPushButton('Say Hello')
  22.  
  23. layout = QVBoxLayout()
  24. layout.addWidget(self.label)
  25. layout.addWidget(button1)
  26. layout.addWidget(button2)
  27. self.setLayout(layout)
  28.  
  29. self.setWindowTitle('SignalSlot')
  30.  
  31. #connect using signal and slot mechanism
  32. #connect button1 to call self.sayHi method as a slot
  33.  
  34. self.connect(button1, SIGNAL("clicked()"), self.sayHi)
  35.  
  36.  
  37. #Here we connect button2 with globalF as a slot as well...
  38. #You can import your own module(s) and then connect
  39. #its/their global function(s) this way...
  40.  
  41. self.connect(button2, SIGNAL("clicked()"), globalF)
  42.  
  43. #def methode(s)
  44. #All Python methods can be treated as slots.
  45. #Note that we needn't any extra syntax to define slot(s).
  46. #They are just regular python functions/methods...
  47.  
  48. def sayHi(self):
  49. self.label.setText("Hi, my name is R...")
  50.  
  51.  
  52.  
  53.  
  54. def main():
  55.  
  56. app = QApplication(sys.argv)
  57.  
  58. example = Example()
  59. example.show()
  60.  
  61. app.exec_()
  62.  
  63.  
  64. if __name__ == '__main__':
  65.  
  66. main()
  67.  
  68.  

لاحظ كيف عم نستخدم الدوال 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:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
الان سؤالي كيف استطيع اجعل واجهتي الرسومية فعالة بحيث استطيع استكشاف ملفاتي على الكمبيوتر وتحميل الصور الى الواجهه الرسومية?

بإنك تكتب الكود وتربط ال slots المناسبة -الا لو انت بتسأل عن الكود نفسه- كدا هيكون برنامج فعال :D

سؤالي الاخر بالنسبة ل سلوتس وكونيكت هل من اللازم اننا اعملها تعريف من مصصم الكيوتي نفسة او استطيع اعرفها من ملفي الرئيسي مثل الاتي?

لا مش لازم بالعكس يفضل انك تعرفها فى ملف ال .py كأى callback عادية والربط بإستخدام connect

تم تعديل بواسطه ahmed_youssef
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
عفواً اخي,,, و آسفة لتأخري عن الموضوع

Ok, I'll tell you about those rules with a simple example as well...

الشيفرة التالية عبارة عن QDialog تتضمن زرارين ورقعة نصية label. رايدتك بس تطلع بالتلميحات مش تهتم لباقي الشيفرة ابداً.

انسخ الكود
  1. 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()
  2.  
  3.  

لاحظ كيف عم نستخدم الدوال 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

post-176755-1233989200_thumb.png

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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
ان اسف لكن مضطر اكتب بالانجليزي مشان انا مش فاهم المصطلحات بالعربي

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...

انسخ الكود
  1.  
  2. #The first...
  3. #just like this...
  4. import myModule
  5.  
  6. #Then you have to use the dot to
  7. #access any item related to that module.
  8. #Such as calling a function defined within that module.
  9. myModule.function1()
  10.  
  11.  
  12. #The Second...
  13. #We use from...import * syntax as the following:
  14. form myModul import *
  15.  
  16. #Now you can call function1 without the module name...dot
  17. function1()
  18.  
  19.  
  20.  

About the second portion of your problem!!!

it's really time consuming and.... !!!

آسفة اخي, ممكن اخواني بالمنتدى بيساعدوك

bye

:happy:

تم تعديل بواسطه رغـد
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
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...

انسخ الكود
  1. #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()
  2.  
  3.  

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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
Thank you

well, 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...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

Be careful...

Are you sure that the function itself is not being called within that module you wish to import??

Any function may call another function, and you should be concerned about that.

bye

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .