سؤال

أحاول أن أتعلم كيفية تشغيل موضوع من تطبيق واجهة المستخدم الرسومية الرئيسية للقيام بإرسال/استقبال منفذ التسلسلي الخاص بي مع إبقاء واجهة المستخدم الرسومية على قيد الحياة. لقد هبطت أفضل محاولاتي googling في Wxpython Wiki على: http://wiki.wxpython.org/longrunningtasks الذي يوفر عدة أمثلة. لقد استقرت على تعلم المثال الأول ، الذي يتضمن بدء تشغيل مؤشر ترابط العامل عند تحديد الزر المعين.

أواجه مشكلة في فهم الوصلات المخصصة:

def EVT_RESULT(win, func):
    """Define Result Event."""
    win.Connect(-1, -1, EVT_RESULT_ID, func)

class ResultEvent(wx.PyEvent):
    """Simple event to carry arbitrary result data."""
    def __init__(self, data):
        """Init Result Event."""
        wx.PyEvent.__init__(self)
        self.SetEventType(EVT_RESULT_ID)
        self.data = data

في المقام الأول

def EVT_RESULT(win, func):
    """Define Result Event."""
    win.Connect(-1, -1, EVT_RESULT_ID, func)

أعتقد أن EVT_RESULT يتم وضعها خارج الفصول لجعلها قادرة على الاتصال من قبل كلتا الفئتين (مما يجعلها عالمية؟)

و .. يقوم تطبيق واجهة المستخدم الرسومية الرئيسية بمراقبة تقدم الموضوع عبر:

# Set up event handler for any worker thread results
EVT_RESULT(self,self.OnResult)

ألاحظ أيضًا أنه في الكثير من الأمثلة ، عندما يستخدم الكاتب

from wx import *

يربطون الأشياء ببساطة

EVT_SOME_NEW_EVENT(self, self.handler)

في مقابل

wx.Bind(EVT_SOME_NEW_EVENT, self.handler)

وهذا لا يساعدني في فهمه بشكل أسرع. شكرًا،

هل كانت مفيدة؟

المحلول

هل تم إعادة فحص المحتوى بشكل صحيح بعد إجراء تغييراتك؟اعتمادا على إصدار الإصدار والبيئة الخاص بك، قد لا تسري الأذونات الجديدة في نتائج البحث حتى يتم التشجير المحتوى.

نصائح أخرى

هذا هو النمط القديم لتحديد الأحداث المخصصة. نرى دليل الهجرة للمزيد من المعلومات.

مأخوذة من دليل الهجرة:

إذا قمت بإنشاء أنواع الأحداث المخصصة الخاصة بك ووظائف EVT_* ، وكنت تريد أن تكون قادرًا على استخدامها مع طريقة الربط أعلاه ، فيجب عليك تغيير EVT_* لتكون مثيلًا wx.PyEventBinder بدلا من وظيفة. على سبيل المثال ، إذا اعتدت أن يكون لديك شيء كهذا:

myCustomEventType = wxNewEventType()
def EVT_MY_CUSTOM_EVENT(win, id, func):
    win.Connect(id, -1, myCustomEventType, func)

قم بتغييره مثل:

myCustomEventType = wx.NewEventType()
EVT_MY_CUSTOM_EVENT = wx.PyEventBinder(myCustomEventType, 1)

هنا منشور آخر لقد صنعت مع اثنين من البرامج المثال التي تفعل بالضبط ما تبحث عنه.

One One هو إرسال بريد إلكتروني إلى تمكين مكتبة المستندات حيث تريد إرسال الملف ثم استخدم عنوان البريد الإلكتروني هذا لإرسال بريد إلكتروني إلى خادم SharePoint وسيقوم بتخزين التقرير في مكتبة المستندات.لقد استخدمت هذه التقنية في الماضي باستخدام خادم SSRS وليس في الوضع المتكامل لتسليم التقارير في الجدول إلى SharePoint.

يفترض أن مزرعة SharePoint قد تم تكوين البريد الإلكتروني عبر البريد الإلكتروني.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top