عمر ايمن نشر 7 ديسمبر 2021 أرسل تقرير مشاركة نشر 7 ديسمبر 2021 لقد صممت واجهة GUI لحساب الزمن * المسافة من خلال QT designer ولكن لم أستطع ضبط الكود بشكل يجعله يعمل بشكل صحيح from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(554, 401) self.pushButton5 = QtWidgets.QPushButton(Dialog) self.pushButton5.setGeometry(QtCore.QRect(110, 220, 93, 28)) self.pushButton5.setObjectName("pushButton5") self.pushButton8 = QtWidgets.QPushButton(Dialog) self.pushButton8.setGeometry(QtCore.QRect(220, 220, 93, 28)) self.pushButton8.setObjectName("pushButton8") self.pushButton12 = QtWidgets.QPushButton(Dialog) self.pushButton12.setGeometry(QtCore.QRect(320, 220, 93, 28)) self.pushButton12.setObjectName("pushButton12") self.label_2 = QtWidgets.QLabel(Dialog) self.label_2.setGeometry(QtCore.QRect(104, 150, 101, 20)) font = QtGui.QFont() font.setPointSize(9) font.setBold(True) font.setItalic(False) font.setWeight(75) self.label_2.setFont(font) self.label_2.setObjectName("label_2") self.speed = QtWidgets.QLineEdit(Dialog) self.speed.setGeometry(QtCore.QRect(220, 150, 113, 22)) self.speed.setObjectName("speed") self.result = QtWidgets.QLabel(Dialog) self.result.setGeometry(QtCore.QRect(130, 180, 301, 21)) self.result.setText("") self.result.setObjectName("result") self.retranslateUi(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Dialog")) self.pushButton5.setText(_translate("Dialog", "5")) self.pushButton8.setText(_translate("Dialog", "8")) self.pushButton12.setText(_translate("Dialog", "12")) self.label_2.setText(_translate("Dialog", "Enter Speed")) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_()) اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Mohamed Abu Abdo نشر 8 يناير 2022 أرسل تقرير مشاركة نشر 8 يناير 2022 أنشئ دالة تكون مهمتها التحويل الي القيمة التي تريد واستخدم self.pushButton5.clicked.connect في استدعائها ,سوف تكون في حاجة إلي تمرير قيمة كل زر الي الدالة عند الضغط عليه, يمكنك استخدام lambda < علي سبيل المثال, self.pushButton5.clicked.connect(lambda x: self.calc_distance(5)) ال calc_distance هي الدالة الخاصة بنا , بعد ذلك يمكنك عرض القيمة الناتجة في self.result من خلال self.result.setText(str(distance)) واقترح عليك انشاء فانكشن مستقلة يمكنك استدعاء ال clicked.connect بداخلها تابع الكود بعد التعديل from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(554, 401) self.pushButton5 = QtWidgets.QPushButton(Dialog) self.pushButton5.setGeometry(QtCore.QRect(110, 220, 93, 28)) self.pushButton5.setObjectName("pushButton5") self.pushButton8 = QtWidgets.QPushButton(Dialog) self.pushButton8.setGeometry(QtCore.QRect(220, 220, 93, 28)) self.pushButton8.setObjectName("pushButton8") self.pushButton12 = QtWidgets.QPushButton(Dialog) self.pushButton12.setGeometry(QtCore.QRect(320, 220, 93, 28)) self.pushButton12.setObjectName("pushButton12") self.label_2 = QtWidgets.QLabel(Dialog) self.label_2.setGeometry(QtCore.QRect(104, 150, 101, 20)) font = QtGui.QFont() font.setPointSize(9) font.setBold(True) font.setItalic(False) font.setWeight(75) self.label_2.setFont(font) self.label_2.setObjectName("label_2") self.speed = QtWidgets.QLineEdit(Dialog) self.speed.setGeometry(QtCore.QRect(220, 150, 113, 22)) self.speed.setObjectName("speed") self.result = QtWidgets.QLabel(Dialog) self.result.setGeometry(QtCore.QRect(130, 180, 301, 21)) self.result.setText("") self.result.setObjectName("result") self.retranslateUi(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog) self.initUI() #New def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Dialog")) self.pushButton5.setText(_translate("Dialog", "5")) self.pushButton8.setText(_translate("Dialog", "8")) self.pushButton12.setText(_translate("Dialog", "12")) self.label_2.setText(_translate("Dialog", "Enter Speed")) def initUI(self): #New self.pushButton5.clicked.connect(lambda x: self.calc_distance(5)) #New self.pushButton8.clicked.connect(lambda x: self.calc_distance(8)) #New self.pushButton12.clicked.connect(lambda x: self.calc_distance(12))#New def calc_distance(self,index):#New speed = float(self.speed.text()) #New time_ = float(index)#New distance = speed*time_ #New print(distance, " :KM") #New self.result.setText(str(distance)) #New if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_()) ما كان ينقص مشروعك هو الحركة أو الاستجابة لمؤثر الضغط علي المفاتيح, أولا قمنا ببناء دالة initUI وبداخلها المفاتيح ,عند ضغط اي زر او مفتاح يتم استدعاء الدالة calc_distance ونمرر اليها معلومات او عدد الساعات المتعلقة بالزر المضغوط. وبدورها تحصلي علي السعة من الحقل self,speed ثم ننفذ العملية distance = speed*time_ , الناتج يمكن طباعته في شاشة الاوامر ويمكن عرضه داخل self.result self.result.setText(str(distance)) لا تنسا يجب استدعاء initUI داخل setupUi.. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
عمر ايمن
لقد صممت واجهة GUI لحساب الزمن * المسافة من خلال QT designer ولكن لم أستطع ضبط الكود بشكل يجعله يعمل بشكل صحيح
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.