الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل يمكن أن نقوم بجعل نافذة مكتوبة بـPyqt بأن تفتح نافذة أخرى ؟

بدأه ahmed_mohammed في 27 مايو 2012 · 3 رد · 514 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أهلا بكل أعضاء المنتدى

مشكلة تواجهني في بايثون و لم أجد لها حل

لو عندنا نافذتين

نافذة فيها جمل و عبارات أو صور ... و نافذة أخرى فيها أزرار و خيارات , كيف نقوم بجعل النافذة التي تحوي أزرار تقوم بفتح النافذة الأخرى لعرض الجمل في النافذة الأولى عند الضغط على الزر ؟؟

لقد وجدت موضوع مشابه لما ابحث عنه هنا و لكني لم اجد فيه ردود ولا حلول فما هو حل مشكلتي ؟ و هـــــــــذا هو الموضوع الذي أتحدث عنه

وهذا كود النافذة الأولى التي تحوي أزرار :

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'man.ui'
#
# Created: Sat May 26 22:45:30 2012
#      by: PyQt4 UI code generator 4.9.1
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("Form"))
        Form.resize(102, 60)
        self.gridLayout = QtGui.QGridLayout(Form)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.pushButton = QtGui.QPushButton(Form)
        self.pushButton.setObjectName(_fromUtf8("pushButton"))
        self.gridLayout.addWidget(self.pushButton, 0, 0, 1, 1)
        self.pushButton_2 = QtGui.QPushButton(Form)
        self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
        self.gridLayout.addWidget(self.pushButton_2, 1, 0, 1, 1)

        self.retranslateUi(Form)

        QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL("clicked()"), Form.show)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("Form", "Thing", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton_2.setText(QtGui.QApplication.translate("Form", "Man", None, QtGui.QApplication.UnicodeUTF8))


if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    Form = QtGui.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()

    sys.exit(app.exec_())

و هذه اكواد النافذة الأخرى التي بها الجمل:

# -*- coding: utf-8 -*-


from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("Form"))
        Form.resize(221, 84)
        self.gridLayout = QtGui.QGridLayout(Form)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.textBrowser = QtGui.QTextBrowser(Form)
        self.textBrowser.setObjectName(_fromUtf8("textBrowser"))
        self.gridLayout.addWidget(self.textBrowser, 0, 0, 1, 1)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8))
        self.textBrowser.setHtml(QtGui.QApplication.translate("Form", "<!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:\'Ubuntu\'; font-size:9pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
"<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">new thing</span></p></body></html>", None, QtGui.QApplication.UnicodeUTF8))


if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    Form = QtGui.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
    sys.exit(app.exec_())

السؤال باختصار هو : كيف يمكنني عمل دالة لتعمل وضيفة فتح النافذة الاخرى ؟

#2

هل يوجد حل لتعديل هذا الملف ؟ بدون أن ندمج الكلاسات

ان اقوم بفتح النافذة الثانية من خلال النافذة الاولى

#3

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

قم بعمل import للملف المعرف فيه النافذة التي تريد إظهارها

قم بربط الحدث clicked من الزر بوظيفة method تقوم بتعريفها أنت يكون دورها هو إنشاء وإظهار النافذة

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#4
ahmed_youssef كتب:

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

قم بعمل import للملف المعرف فيه النافذة التي تريد إظهارها

قم بربط الحدث clicked من الزر بوظيفة method تقوم بتعريفها أنت يكون دورها هو إنشاء وإظهار النافذة

نعم هذا ما أسأل عنه

ما هي طريقة عمل وظيفة لربطها بالزر . حاولت أن أعمل واحدة و لكن لم تنجح

و حاولت عمل هذه الطريقة في هذا الموضوع و لكني أريد كل ملف منفصل عن الآخر

اتمنى أني وضحت الفكرة

هل من الممكن ان تعطيني مثال بسيط ﻻني اريد معرفة الطريقة من فترة

و هناك الكثير من الناس يريدون معرفتها ايضا و لم اجد لها شروحات واضحة

انا اعلم ما ينبغي علي فعله و لكني لم اتمكن من التطبيق الصحيح :mellow: فهل ترشدني لطريقة بسيطة لعملها ؟

thanks :happy:

تم تعديل هذه المشاركة بواسطة ahmed_mohammed في 3 يونيو 2012 في 10:15

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…