إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

سؤال في تكرار الواجهة الرسومية في pyqt

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • [سؤال] سؤال في تكرار الواجهة الرسومية في pyqt

    السلام عليكم

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

    هذا الكود قبل التكرار

    كود PHP:
    from PyQt4.QtCore import*
    from PyQt4.QtGui import*
    from PyQt4 import QtGui
    from PyQt4 import QtCore
    QtGui
    import sys
    import math
    class Ui_Form(object):
        
    def setupUi(selfForm):
            
    Form.setObjectName("Form")
           
            
    self.lineEdit QtGui.QLineEdit(Form)
            
    self.lineEdit.setGeometry(QtCore.QRect(39003121))
            
    self.lineEdit.setObjectName("lineEdit")

            
    Form.resize(727,500)
            
    self.textBrowser_2 QtGui.QTextBrowser(Form)
            
    self.textBrowser_2.setGeometry(QtCore.QRect(5805010121))
            
    self.textBrowser_2.setObjectName("textBrowser_2")
            
    self.label_7 QtGui.QLabel(Form)
            
    self.label_7.setGeometry(QtCore.QRect(600303121))
            
    self.label_7.setObjectName("label_7")
            
    self.textBrowser QtGui.QTextBrowser(Form)
            
    self.textBrowser.setGeometry(QtCore.QRect(4505010121))
            
    self.textBrowser.setObjectName("textBrowser")
            
    self.label_6 QtGui.QLabel(Form)
            
    self.label_6.setGeometry(QtCore.QRect(480303121))
            
    self.label_6.setObjectName("label_6")
            
    self.theta QtGui.QLineEdit(Form)
            
    self.theta.setGeometry(QtCore.QRect(10508121))
            
    self.theta.setObjectName("theta")
            
    self.label_2 QtGui.QLabel(Form)
            
    self.label_2.setGeometry(QtCore.QRect(30305121))
            
    self.label_2.setObjectName("label_2")
            
    self.label_3 QtGui.QLabel(Form)
            
    self.label_3.setGeometry(QtCore.QRect(140305121))
            
    self.label_3.setObjectName("label_3")
            
    self.Heigth QtGui.QLineEdit(Form)
            
    self.Heigth.setGeometry(QtCore.QRect(120508121))
            
    self.Heigth.setObjectName("theta_2")
            
    self.label_4 QtGui.QLabel(Form)
            
    self.label_4.setGeometry(QtCore.QRect(250305121))
            
    self.label_4.setObjectName("label_4")
            
    self.Length QtGui.QLineEdit(Form)
            
    self.Length.setGeometry(QtCore.QRect(230508121))
            
    self.Length.setObjectName("theta_3")
            
    self.label_5 QtGui.QLabel(Form)
            
    self.label_5.setGeometry(QtCore.QRect(360305121))
            
    self.label_5.setObjectName("label_5")
            
    self.Depth QtGui.QLineEdit(Form)
            
    self.Depth.setGeometry(QtCore.QRect(340508121))
            
    self.Depth.setObjectName("theta_4")
            
    self.label QtGui.QLabel(Form)
            
    self.label.setEnabled(True)
            
    self.label.setGeometry(QtCore.QRect(33006217))
            
    self.label.setObjectName("label")
            
    self.pushButton QtGui.QPushButton(Form)
            
    self.pushButton.setGeometry(QtCore.QRect(340809327))
            
    self.pushButton.setObjectName("pushButton")


            
    self.retranslateUi(Form)
            
    QtCore.QMetaObject.connectSlotsByName(Form)
            
    push=self.pushButton
            self
    .connect(push,SIGNAL("clicked()"),self.calc)
            
        
    def retranslateUi(selfForm):
            
    Form.setWindowTitle(QtGui.QApplication.translate("Form""Form"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_7.setText(QtGui.QApplication.translate("Form""R/H"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_6.setText(QtGui.QApplication.translate("Form""R"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_2.setText(QtGui.QApplication.translate("Form""Theta"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_3.setText(QtGui.QApplication.translate("Form""Heigth"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_4.setText(QtGui.QApplication.translate("Form""Length"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_5.setText(QtGui.QApplication.translate("Form""Depth"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label.setText(QtGui.QApplication.translate("Form""namber"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.pushButton.setText(QtGui.QApplication.translate("Form""calc"NoneQtGui.QApplication.UnicodeUTF8))
        
        
    def calc(self):
            
    th=float(self.theta.text())
            
    h=float(self.Heigth.text())
            
    l=float(self.Length.text())
            
    d=float(self.Depth.text())
            
    A=math.sqrt(math.pi/th)
            
    B1=math.pi*h/l
            B2
    =1/(math.tanh(2*math.pi*d/l))
            
    C1=1
            s
    =math.sin(2*math.pi*d/l)**2
            C2
    =3/(4*s)
            
    c=math.cosh(2-d/l)**2
            C3
    =1/4*c
            m
    =A+(B1*B2)*(C1+C2-C3)# thes R/h
            
    R=m*h
            self
    .textBrowser.append("%f"%(float(R)))
            
    self.textBrowser_2.append("%f"%(float(m)))        
            



    class 
    MainWindow(QtGui.QMainWindowUi_Form):
        
    def __init__(self,parent=None):
            
    QtGui.QWidget.__init__(self)
            
    self.ui=Ui_Form
            self
    .setupUi(self)
    if 
    __name__=="__main__":
        
      
    app QtGui.QApplication(sys.argv)
      
    MainWindow()
      
    w.show()
      
    sys.exit(app.exec_()) 
    وهذه النتيجة
    اضغط على الصورة لعرض أكبر. 

الإسم:	screenshot3.png 
مشاهدات:	1 
الحجم:	9.3 كيلوبايت 
الهوية:	850240


    وهذا الكود بعد التكرار

    كود PHP:
    from PyQt4.QtCore import*
    from PyQt4.QtGui import*
    from PyQt4 import QtGui
    from PyQt4 import QtCore
    QtGui
    import sys
    import math
    class Ui_Form(object):
        
    def setupUi(selfForm):
            
    Form.setObjectName("Form")
           
            
    self.lineEdit QtGui.QLineEdit(Form)
            
    self.lineEdit.setGeometry(QtCore.QRect(39003121))
            
    self.lineEdit.setObjectName("lineEdit")
            
    i=0
            y
    =0
            
    while (i<10):
                
    Form.resize(727,500)
                
    self.textBrowser_2 QtGui.QTextBrowser(Form)
                
    self.textBrowser_2.setGeometry(QtCore.QRect(58050+y10121))
                
    self.textBrowser_2.setObjectName("textBrowser_2")
                
    self.label_7 QtGui.QLabel(Form)
                
    self.label_7.setGeometry(QtCore.QRect(600303121))
                
    self.label_7.setObjectName("label_7")
                
    self.textBrowser QtGui.QTextBrowser(Form)
                
    self.textBrowser.setGeometry(QtCore.QRect(45050+y10121))
                
    self.textBrowser.setObjectName("textBrowser")
                
    self.label_6 QtGui.QLabel(Form)
                
    self.label_6.setGeometry(QtCore.QRect(480303121))
                
    self.label_6.setObjectName("label_6")
                
    self.theta QtGui.QLineEdit(Form)
                
    self.theta.setGeometry(QtCore.QRect(1050+y8121))
                
    self.theta.setObjectName("theta")
                
    self.label_2 QtGui.QLabel(Form)
                
    self.label_2.setGeometry(QtCore.QRect(30305121))
                
    self.label_2.setObjectName("label_2")
                
    self.label_3 QtGui.QLabel(Form)
                
    self.label_3.setGeometry(QtCore.QRect(140305121))
                
    self.label_3.setObjectName("label_3")
                
    self.Heigth QtGui.QLineEdit(Form)
                
    self.Heigth.setGeometry(QtCore.QRect(12050+y8121))
                
    self.Heigth.setObjectName("theta_2")
                
    self.label_4 QtGui.QLabel(Form)
                
    self.label_4.setGeometry(QtCore.QRect(250305121))
                
    self.label_4.setObjectName("label_4")
                
    self.Length QtGui.QLineEdit(Form)
                
    self.Length.setGeometry(QtCore.QRect(23050+y8121))
                
    self.Length.setObjectName("theta_3")
                
    self.label_5 QtGui.QLabel(Form)
                
    self.label_5.setGeometry(QtCore.QRect(360305121))
                
    self.label_5.setObjectName("label_5")
                
    self.Depth QtGui.QLineEdit(Form)
                
    self.Depth.setGeometry(QtCore.QRect(34050+y8121))
                
    self.Depth.setObjectName("theta_4")
                
    self.label QtGui.QLabel(Form)
                
    self.label.setEnabled(True)
                
    self.label.setGeometry(QtCore.QRect(33006217))
                
    self.label.setObjectName("label")
                
    self.pushButton QtGui.QPushButton(Form)
                
    self.pushButton.setGeometry(QtCore.QRect(3404709327))
                
    self.pushButton.setObjectName("pushButton")


                
    self.retranslateUi(Form)
                
    QtCore.QMetaObject.connectSlotsByName(Form)
                
    push=self.pushButton
                self
    .connect(push,SIGNAL("clicked()"),self.calc)
                
    i=i+1
                y
    =y+40
        def retranslateUi
    (selfForm):
            
    Form.setWindowTitle(QtGui.QApplication.translate("Form""Form"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_7.setText(QtGui.QApplication.translate("Form""R/H"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_6.setText(QtGui.QApplication.translate("Form""R"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_2.setText(QtGui.QApplication.translate("Form""Theta"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_3.setText(QtGui.QApplication.translate("Form""Heigth"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_4.setText(QtGui.QApplication.translate("Form""Length"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label_5.setText(QtGui.QApplication.translate("Form""Depth"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.label.setText(QtGui.QApplication.translate("Form""namber"NoneQtGui.QApplication.UnicodeUTF8))
            
    self.pushButton.setText(QtGui.QApplication.translate("Form""calc"NoneQtGui.QApplication.UnicodeUTF8))
        
        
    def calc(self):
            
    th=float(self.theta.text())
            
    h=float(self.Heigth.text())
            
    l=float(self.Length.text())
            
    d=float(self.Depth.text())
            
    A=math.sqrt(math.pi/th)
            
    B1=math.pi*h/l
            B2
    =1/(math.tanh(2*math.pi*d/l))
            
    C1=1
            s
    =math.sin(2*math.pi*d/l)**2
            C2
    =3/(4*s)
            
    c=math.cosh(2-d/l)**2
            C3
    =1/4*c
            m
    =A+(B1*B2)*(C1+C2-C3)# thes R/h
            
    R=m*h
            self
    .textBrowser.append("%f"%(float(R)))
            
    self.textBrowser_2.append("%f"%(float(m)))        
            



    class 
    MainWindow(QtGui.QMainWindowUi_Form):
        
    def __init__(self,parent=None):
            
    QtGui.QWidget.__init__(self)
            
    self.ui=Ui_Form
            self
    .setupUi(self)
    if 
    __name__=="__main__":
        
      
    app QtGui.QApplication(sys.argv)
      
    MainWindow()
      
    w.show()
      
    sys.exit(app.exec_()) 
    وهذه النتيجه
    اضغط على الصورة لعرض أكبر. 

الإسم:	screenshot4.png 
مشاهدات:	1 
الحجم:	14.9 كيلوبايت 
الهوية:	850241


    المشكلة في كيف تتكرر العملية الحسابية

  • #2
    ام لا تستعمل QTableWidget بدلا من انشاء كل تلك أسطر الإدخال ؟
    ArabicFOSS
    انضم إلى فريق المدونة و ساهم بما شئت وقتما شئت!

    تعليق


    • #3
      وعليكم السلام

      طريقتك غير عمليه ابدا

      عليك ان تقوم بتخزين الناتج بقاعده او حتى ملف وسيغنيك عن تكرار الواجهه

      يعني لما تضغط زر الحساب راح يحفظ لك الناتج الجديد في ملف نصي أسفل الناتج السابق

      وبالتالي راح تسهل عليك العمل وتكسب الوقت
      التعديل الأخير تم بواسطة سلطان العنزي; الساعة 25-10-2010, 11:39 AM.
      هل لديك الوقت لتلعب مع لغة البرمجة بايثون؟
      الأساسيات وتطوير البرامج - تطوير وبرمجة الويب
      --------
      جرب التدوين بقوة بايثون LightBlog

      تعليق


      • #4
        المشاركة الأصلية بواسطة محمد البردعي مشاهدة المشاركة
        ام لا تستعمل QTableWidget بدلا من انشاء كل تلك أسطر الإدخال ؟
        هل من كتاب يساعدني في فهمها


        المشاركة الأصلية بواسطة sasa1 مشاهدة المشاركة
        وعليكم السلام

        طريقتك غير عمليه ابدا

        عليك ان تقوم بتخزين الناتج بقاعده او حتى ملف وسيغنيك عن تكرار الواجهه

        يعني لما تضغط زر الحساب راح يحفظ لك الناتج الجديد في ملف نصي أسفل الناتج السابق

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

        بالطبع طريقتي ليست عملية
        لذلك طلبت مساعدتكم

        سأدع حفظها في ملف اخر الحلول
        شكرا لك

        تعليق


        • #5
          وضح لنا فكرة مشروعك اكثر

          يعني هل يهم تكرار العمليات ام الناتج فقط..

          سأدع حفظها في ملف اخر الحلول
          استغرب من ذلك مع اني أرى انها افضل للحفظ

          وايضا لن يكلفك الأمر بعد ذلك سوى نسخ ولصق

          حتى يمكنك في نفس الملف تنظيم الشكل بحيث يصبح كالجدول تحته المعادلات وبجانبها النتائج
          هل لديك الوقت لتلعب مع لغة البرمجة بايثون؟
          الأساسيات وتطوير البرامج - تطوير وبرمجة الويب
          --------
          جرب التدوين بقوة بايثون LightBlog

          تعليق


          • #6
            المشاركة الأصلية بواسطة sasa1 مشاهدة المشاركة
            وضح لنا فكرة مشروعك اكثر

            يعني هل يهم تكرار العمليات ام الناتج فقط..



            استغرب من ذلك مع اني أرى انها افضل للحفظ

            وايضا لن يكلفك الأمر بعد ذلك سوى نسخ ولصق

            حتى يمكنك في نفس الملف تنظيم الشكل بحيث يصبح كالجدول تحته المعادلات وبجانبها النتائج

            بالنسبة للمشروع

            هي عدت معادلات تستخدم في التنبؤ بالموجات التسونامية(في طور الابحاث)
            وهناك حساسات وخلايا عصبيه في البحر تستخدم لرصد حركة الامواج مما يعني الكثير من النتائج اللحظيه التي يتم رصدها
            ثم يتم اخذ النتائج ووضعها في البرنامج
            وكل مأريد هو اختصار الوقت بتكرار الواجهه الرسومية والعملية الحسابيه لكثرة البيانات المدخله

            بالنسبة لحفظها في ملف هي طريقة متعبة بالنسبة لشخص يقوم بأدخال الاف النتائج

            ولاحقا ان شاء الله سيتم ربط البرنامج مع الخلايا العصبيه في ذلك الوقت سيكون حفظها في ملف الطريقة الاكثر عملية

            تعليق


            • #7
              لا زلت مصرا بأن تستخدم ملف لحفظ النتائج

              فالواجهه ممكن ان تفقد النتائج فيها عند تعليق البرنامج خصوصا لو كنت قمت بحساب عدد كبير من النتائج

              عموما قد قمت بتعديل الكود حتى يقوم بحفظ الناتج في ملف date.txt بنفس مجلد البرنامج ولك حرية الاختيار

              كود PHP:
              from PyQt4.QtCore import*
              from PyQt4.QtGui import*
              from PyQt4 import QtGui
              from PyQt4 import QtCore
              QtGui
              import sys
              import math
              class Ui_Form(object):
                  
              def setupUi(selfForm):
                      
              Form.setObjectName("Form")
                     
                      
              self.lineEdit QtGui.QLineEdit(Form)
                      
              self.lineEdit.setGeometry(QtCore.QRect(39003121))
                      
              self.lineEdit.setObjectName("lineEdit")

                      
              Form.resize(727,500)
                      
              self.textBrowser_2 QtGui.QTextBrowser(Form)
                      
              self.textBrowser_2.setGeometry(QtCore.QRect(5805010121))
                      
              self.textBrowser_2.setObjectName("textBrowser_2")
                      
              self.label_7 QtGui.QLabel(Form)
                      
              self.label_7.setGeometry(QtCore.QRect(600303121))
                      
              self.label_7.setObjectName("label_7")
                      
              self.textBrowser QtGui.QTextBrowser(Form)
                      
              self.textBrowser.setGeometry(QtCore.QRect(4505010121))
                      
              self.textBrowser.setObjectName("textBrowser")
                      
              self.label_6 QtGui.QLabel(Form)
                      
              self.label_6.setGeometry(QtCore.QRect(480303121))
                      
              self.label_6.setObjectName("label_6")
                      
              self.theta QtGui.QLineEdit(Form)
                      
              self.theta.setGeometry(QtCore.QRect(10508121))
                      
              self.theta.setObjectName("theta")
                      
              self.label_2 QtGui.QLabel(Form)
                      
              self.label_2.setGeometry(QtCore.QRect(30305121))
                      
              self.label_2.setObjectName("label_2")
                      
              self.label_3 QtGui.QLabel(Form)
                      
              self.label_3.setGeometry(QtCore.QRect(140305121))
                      
              self.label_3.setObjectName("label_3")
                      
              self.Heigth QtGui.QLineEdit(Form)
                      
              self.Heigth.setGeometry(QtCore.QRect(120508121))
                      
              self.Heigth.setObjectName("theta_2")
                      
              self.label_4 QtGui.QLabel(Form)
                      
              self.label_4.setGeometry(QtCore.QRect(250305121))
                      
              self.label_4.setObjectName("label_4")
                      
              self.Length QtGui.QLineEdit(Form)
                      
              self.Length.setGeometry(QtCore.QRect(230508121))
                      
              self.Length.setObjectName("theta_3")
                      
              self.label_5 QtGui.QLabel(Form)
                      
              self.label_5.setGeometry(QtCore.QRect(360305121))
                      
              self.label_5.setObjectName("label_5")
                      
              self.Depth QtGui.QLineEdit(Form)
                      
              self.Depth.setGeometry(QtCore.QRect(340508121))
                      
              self.Depth.setObjectName("theta_4")
                      
              self.label QtGui.QLabel(Form)
                      
              self.label.setEnabled(True)
                      
              self.label.setGeometry(QtCore.QRect(33006217))
                      
              self.label.setObjectName("label")
                      
              self.pushButton QtGui.QPushButton(Form)
                      
              self.pushButton.setGeometry(QtCore.QRect(340809327))
                      
              self.pushButton.setObjectName("pushButton")


                      
              self.retranslateUi(Form)
                      
              QtCore.QMetaObject.connectSlotsByName(Form)
                      
              push=self.pushButton
                      self
              .connect(push,SIGNAL("clicked()"),self.calc)

                      
                  
              def retranslateUi(selfForm):
                      
              Form.setWindowTitle(QtGui.QApplication.translate("Form""Form"NoneQtGui.QApplication.UnicodeUTF8))
                      
              self.label_7.setText(QtGui.QApplication.translate("Form""R/H"NoneQtGui.QApplication.UnicodeUTF8))
                      
              self.label_6.setText(QtGui.QApplication.translate("Form""R"NoneQtGui.QApplication.UnicodeUTF8))
                      
              self.label_2.setText(QtGui.QApplication.translate("Form""Theta"NoneQtGui.QApplication.UnicodeUTF8))
                      
              self.label_3.setText(QtGui.QApplication.translate("Form""Heigth"NoneQtGui.QApplication.UnicodeUTF8))
                      
              self.label_4.setText(QtGui.QApplication.translate("Form""Length"NoneQtGui.QApplication.UnicodeUTF8))
                      
              self.label_5.setText(QtGui.QApplication.translate("Form""Depth"NoneQtGui.QApplication.UnicodeUTF8))
                      
              self.label.setText(QtGui.QApplication.translate("Form""namber"NoneQtGui.QApplication.UnicodeUTF8))
                      
              self.pushButton.setText(QtGui.QApplication.translate("Form""calc"NoneQtGui.QApplication.UnicodeUTF8))

                      
                  
              def calc(self):
                      
              th=float(self.theta.text())
                      
              h=float(self.Heigth.text())
                      
              l=float(self.Length.text())
                      
              d=float(self.Depth.text())
                      
              A=math.sqrt(math.pi/th)
                      
              B1=math.pi*h/l
                      B2
              =1/(math.tanh(2*math.pi*d/l))
                      
              C1=1
                      s
              =math.sin(2*math.pi*d/l)**2
                      C2
              =3/(4*s)
                      
              c=math.cosh(2-d/l)**2
                      C3
              =1/4*c
                      m
              =A+(B1*B2)*(C1+C2-C3)# thes R/h
                      
              R=m*h
                      self
              .textBrowser.append("%f"%(float(R)))
                      
              self.textBrowser_2.append("%f"%(float(m)))
                      
              file=open('date.txt','a')
                      
              file.write('{theta= '+str(th)+' Heigth= '+str(h)+' Length= '+str(l)+' Depth= '+str(d)+'}=| R= '+str(R)+' m= '+str(m)+'|\n')
                      
              file.close()
                      



              class 
              MainWindow(QtGui.QMainWindowUi_Form):
                  
              def __init__(self,parent=None):
                      
              QtGui.QWidget.__init__(self)
                      
              self.ui=Ui_Form
                      self
              .setupUi(self)
              if 
              __name__=="__main__":
                  
                
              app QtGui.QApplication(sys.argv)
                
              MainWindow()
                
              w.show()
                
              sys.exit(app.exec_()) 

              وبالتوفيق لك
              هل لديك الوقت لتلعب مع لغة البرمجة بايثون؟
              الأساسيات وتطوير البرامج - تطوير وبرمجة الويب
              --------
              جرب التدوين بقوة بايثون LightBlog

              تعليق


              • #8
                يعجبني اصرارك

                شكرا لك

                تعليق


                • #9
                  السلام عليكم ورحمه الله وبركاته

                  اخى الكريم بعد التحيه معذره لتأخرى فى الرد

                  اولا طريق التكرار هذه غير عمليه على الاطلاق فبدلا من تكرار الرسم لل QLineEdit يمكنك استخدام فئه الجداول QTableView

                  ولكن بطبيعه الحال هذا البرنامج خاص بك انت وانت وحدك تحدد ما هو الافضل لبرنامجك لأننا لا نعرف طبيعه البرنامج او ما هو الشكل المطلوب بالضبط

                  لذلك لقد قمت بتعديل كود التكرار قليلا ليلائم متطلباتك حسب فهمى للموضوع

                  اليك الكود بعد التعديل :



                  كود PHP:

                  from PyQt4
                  .QtCore import*
                  from PyQt4.QtGui import*
                  from PyQt4 import QtCoreQtGui
                  import sys
                  import math

                  class Ui_Form(object):
                      
                  all_QLE_1={}
                      
                  pButton=[]
                      
                  def setupUi(selfForm):
                          
                  Form.setObjectName("Form")

                          
                  self.lineEdit QtGui.QLineEdit(Form)
                          
                  self.lineEdit.setGeometry(QtCore.QRect(39003121))
                          
                  self.lineEdit.setObjectName("lineEdit")

                          
                  Form.resize(727,500)
                          
                          
                  ##================================================
                          
                  self.label_7=self.labeeld(FormQtCore.QRect(600303121), "label_7")
                          
                  self.label_6=self.labeeld(FormQtCore.QRect(480303121), "label_6")
                          
                  self.label_2=self.labeeld(FormQtCore.QRect(30305121), "label_2")
                          
                  self.label_3=self.labeeld(FormQtCore.QRect(140305121), "label_3")
                          
                  self.label_4=self.labeeld(FormQtCore.QRect(250305121), "label_4")
                          
                  self.label_5=self.labeeld(FormQtCore.QRect(360305121), "label_5")
                          
                  self.label=self.labeeld(FormQtCore.QRect(33006217), "label")
                          
                  ##================================================
                          
                          
                  self.pushButton QtGui.QPushButton(Form)
                          
                  self.pushButton.setGeometry(QtCore.QRect(3404709327))
                          
                  self.pushButton.setObjectName("pushButton")

                          
                  self.pButton.append(self.pushButton)
                          
                          
                  self.retranslateUi(Form)
                          
                  QtCore.QMetaObject.connectSlotsByName(Form)
                          
                          
                  i=y=0
                          
                  while (i<10):
                              
                  ##================================================
                              
                  Theta=self.lineeedit(FormQtCore.QRect(1050+y8121))
                              
                  Heigth=self.lineeedit(FormQtCore.QRect(12050+y8121))
                              
                  Length=self.lineeedit(FormQtCore.QRect(23050+y8121))
                              
                  Depth=self.lineeedit(FormQtCore.QRect(34050+y8121))
                              
                  ##=======================================
                              
                  R=self.texteebrowser(FormQtCore.QRect(45050+y10121))
                              
                  RH=self.texteebrowser(FormQtCore.QRect(58050+y10121))
                              
                  ##================================================
                              
                              
                  self.all_QLE_1.update({i:(ThetaHeigthLengthDepthRRH)})
                              
                              
                  i+=1
                              y
                  +=40
                          
                      
                      def labeeld
                  (selfform_xposObj_name):
                          
                  QL=QtGui.QLabel(form_x)
                          
                  QL.setGeometry(pos)
                          
                  QL.setObjectName(Obj_name)
                          return 
                  QL
                      
                      def lineeedit
                  (selfform_xpos):
                          
                  QLE QtGui.QLineEdit(form_x)
                          
                  QLE.setGeometry(pos)
                          
                  QLE.setObjectName("QLE")
                          return 
                  QLE
                      
                      def texteebrowser
                  (selfform_xpos):
                          
                  QTB QtGui.QTextBrowser(form_x)
                          
                  QTB.setGeometry(pos)
                          
                  QTB.setObjectName("QTB")
                          return 
                  QTB

                      def retranslateUi
                  (selfForm):
                          
                  Form.setWindowTitle(QtGui.QApplication.translate("Form""Form"NoneQtGui.QApplication.UnicodeUTF8))
                          
                  self.label_7.setText(QtGui.QApplication.translate("Form""R/H"NoneQtGui.QApplication.UnicodeUTF8))
                          
                  self.label_6.setText(QtGui.QApplication.translate("Form""R"NoneQtGui.QApplication.UnicodeUTF8))
                          
                  self.label_2.setText(QtGui.QApplication.translate("Form""Theta"NoneQtGui.QApplication.UnicodeUTF8))
                          
                  self.label_3.setText(QtGui.QApplication.translate("Form""Heigth"NoneQtGui.QApplication.UnicodeUTF8))
                          
                  self.label_4.setText(QtGui.QApplication.translate("Form""Length"NoneQtGui.QApplication.UnicodeUTF8))
                          
                  self.label_5.setText(QtGui.QApplication.translate("Form""Depth"NoneQtGui.QApplication.UnicodeUTF8))
                          
                  self.label.setText(QtGui.QApplication.translate("Form""namber"NoneQtGui.QApplication.UnicodeUTF8))
                          
                  self.pushButton.setText(QtGui.QApplication.translate("Form""calc"NoneQtGui.QApplication.UnicodeUTF8))
                      


                  class 
                  MainWindow(QtGui.QMainWindowUi_Form):
                      
                  def __init__(self,parent=None):
                          
                  QtGui.QWidget.__init__(self)
                          
                  self.ui=Ui_Form
                          self
                  .setupUi(self)
                          
                          
                  self.connect(self.ui.pButton[0],SIGNAL("clicked()"),self.calc)
                      
                      
                  def calc(self):
                          
                  input_output=self.ui.all_QLE_1
                          
                  for i in input_output:
                              try:
                                  
                  Theta=float(input_output[i][0].text())
                                  
                  Heigth=float(input_output[i][1].text())
                                  
                  Length=float(input_output[i][2].text())
                                  
                  Depth=float(input_output[i][3].text())
                                  
                                  
                  A=math.sqrt(math.pi/Theta)
                                  
                  B1=math.pi*Heigth/Length
                                  B2
                  =1/(math.tanh(2*math.pi*Depth/Length))
                                  
                  C1=1
                                  s
                  =math.sin(2*math.pi*Depth/Length)**2
                                  C2
                  =3/(4*s)
                                  
                  c=math.cosh(2-Depth/Length)**2
                                  C3
                  =1/4*c
                                  m
                  =A+(B1*B2)*(C1+C2-C3)# thes R/h
                                  
                  R=m*Heigth  
                                  
                                  input_output
                  [i][4].append("%f"%(float(R)))
                                  
                  input_output[i][5].append("%f"%(float(m)))
                                  
                              
                  except:
                                  print 
                  'pleas check/insert numbers in row : '+str(i+1)
                                  break

                  if 
                  __name__=="__main__":
                    
                  app QtGui.QApplication(sys.argv)
                    
                  MainWindow()
                    
                  w.show()
                    
                  sys.exit(app.exec_()) 


                  بعض الملاحظات :

                  اولا انا قمت بفصل داله الحساب بعيدا عن كود الواجهه حتى يمكنك تحميل الواجهه فى ملف مستقل وعمل استدعاء له فقط

                  قمت باضافه دول للاضافه الكنترول QLineEdit و QTextBrowser و QLabel لتسهيل قراءه وكتابه الكود
                  فائده اخرى للفصل وهو امكانيه حفظ المرجع او ال object لكل كنترول على حده حتى يتسنى لنا استدعائه وقرائه محتوياته او الكتابه عليه فيما بعد

                  ال all_QLE_1 هذا هو خلاصه جميع الكنترولز المضافه ويمكنك قرائته من الكلاس الثانى كما فعلت عن طريق self.ui.all_QLE_1

                  لابد من ادخال الاربعه قيم كامله حتى يتم الحساب وقمت بتعديله ليحسب كل سطر بالترتيب من اول سطر لاخر سطر
                  لابد من ادخال اول سطر حتى يستطيع حساب السطر الثانى ولابد من الثانى حتى يحسب الثالث وهكذا ويمكنك ملئ جميع الاسطر مره واحده والضغط على حساب وسيقوم بحسابهم كلهم واذا وجد مشكله سيقوم بطباعه السطر الذى يحتوى المشكله

                  اخيرا لقد حاولت مساعتدتك فى تعديل الكود الذى قمت انت بكتابته ولكن هذا لا يعنى انى راض عن هذا الكود فانت يمكنك استخدام فئه الجداول التى اشرت اليها من قبل وهى ستحسن اداء برنامجك وستعطيك امكانيات اخرى مثل اضافه عدد لا نائى من السطور او الصفوف كما تريد

                  الجدول تشبيه مصغر لقاعده بيانات

                  اذا هناك اى استفسار لا تتردد فى ذلك


                  No Pains No Gains



                  تعليق


                  • #10
                    شكرا على التعديل والتوضيح

                    كما تعلم البرنامج غير عملي
                    واود استخدام الجداول
                    هل من وثائق او كتب تشرح طريقة استخدامها غير وثائق qt؟
                    وهل من الممكن حفظ الجداول بعد ذلك على ملف(بعد الحساب)؟

                    تعليق

                    يعمل...
                    X