GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • فهرست مطالب
  • API زبان C برای Curses
  • اشیاء برای راهنمای نوع
  • شیءهای DateTime
  • گزارش یک اشکال
  • بهبود این صفحه
  • نمایش منبع
  • نمایش منبع ترجمه
  • اندیس
  • ماژول‌ها
  • Python
  • 3.15.2 documentation
  • راهنمای مرجع Python/C API
  • لایه اشیاء عینی

This view

  • Original page
  • New address

GeezerVison is showing python.github.io — API زبان C برای Curses

API زبان C برای Curses¶

curses یک رابط C کوچک را برای ماژول‌های توسعه‌ای در اختیار قرار می‌دهد. مصرف‌کنندگان باید پرونده‌ی سرآیند py_curses.h (که به‌طور پیش‌فرض توسط Python.h گنجانده نمی‌شود) را گنجانده باشند و import_curses() باید، معمولاً به‌عنوان بخشی از تابع مقداردهی اولیه ماژول، برای پر کردن PyCurses_API فراخوانی شود.

هشدار

نه API زبان C و نه ماژول curses پایتون خالص با زیرمفسرها سازگار است.

import_curses()¶

API سی curses را ایمپورت می‌کند. این ماکرو برای فراخوانی به نقطه‌ویرگول نیاز ندارد.

در صورت موفقیت، اشاره‌گر PyCurses_API را پر می‌کند.

در صورت شکست، مقدار PyCurses_API را برابر NULL قرار دهید و یک استثنا تنظیم کنید. فراخواننده باید از طریق PyErr_Occurred() بررسی کند که آیا خطایی رخ داده است:

import_curses();  // نقطه‌ویرگول اختیاری است اما توصیه می‌شود
if (PyErr_Occurred()) { /* پاک‌سازی */ }
void **PyCurses_API¶

شیء تخصیص‌یافته به‌طور پویا که API زبان C ماژول curses را در بر دارد. این متغیر تنها پس از موفقیت import_curses در دسترس است.

PyCurses_API[0] متناظر با PyCursesWindow_Type است.

PyCurses_API[1]، PyCurses_API[2] و PyCurses_API[3] اشاره‌گرهایی به توابع محمول از نوع int (*)(void) هستند.

هنگام فراخوانی، این محمول‌ها به ترتیب برمی‌گردانند که curses.setupterm()، curses.initscr() و curses.start_color() فراخوانی شده‌اند یا نه.

همچنین ماکروهای کمکی PyCursesSetupTermCalled، PyCursesInitialised و PyCursesInitialisedColor را ببینید.

نکته

تعداد ورودی‌های این ساختار ممکن است تغییر کند. برای بررسی موجود بودن یا نبودن فیلدهای جدید، استفاده از PyCurses_API_pointers را در نظر بگیرید.

PyCurses_API_pointers¶

تعداد فیلد‌های دسترسی‌پذیر (4) در PyCurses_API. این عدد هر زمان که فیلد‌های جدیدی افزوده شوند، افزایش می‌یابد.

PyTypeObject PyCursesWindow_Type¶

نوع هیپ متناظر با curses.window.

int PyCursesWindow_Check(PyObject *op)¶

اگر op نمونه‌ای از curses.window باشد، مقدار درست و در غیر این صورت مقدار نادرست برمی‌گرداند.

ماکروهای زیر ماکروهای کمکی هستند که به دستورهای C بسط می‌یابند. به‌طور خاص، این ماکروها را فقط می‌توان به شکل macro; یا macro به کار برد، اما نه به شکل macro() یا macro();.

PyCursesSetupTermCalled¶

ماکرویی که بررسی می‌کند آیا curses.setupterm() فراخوانی شده است یا خیر.

بسط ماکرو تقریباً معادل است با:

{
    typedef int (*predicate_t)(void);
    predicate_t was_setupterm_called = (predicate_t)PyCurses_API[1];
    if (!was_setupterm_called()) {
        return NULL;
    }
}
PyCursesInitialised¶

ماکرویی که بررسی می‌کند آیا curses.initscr() فراخوانی شده است یا خیر.

بسط ماکرو تقریباً معادل است با:

{
    typedef int (*predicate_t)(void);
    predicate_t was_initscr_called = (predicate_t)PyCurses_API[2];
    if (!was_initscr_called()) {
        return NULL;
    }
}
PyCursesInitialisedColor¶

ماکرویی که بررسی می‌کند آیا curses.start_color() فراخوانی شده است.

بسط ماکرو تقریباً معادل است با:

{
    typedef int (*predicate_t)(void);
    predicate_t was_start_color_called = (predicate_t)PyCurses_API[3];
    if (!was_start_color_called()) {
        return NULL;
    }
}

داده‌های داخلی¶

اشیاء زیر توسط API زبان C ارائه شده‌اند، اما باید صرفاً داخلی در نظر گرفته شوند.

PyCurses_CAPSULE_NAME¶

نام کپسول curses برای ارسال به PyCapsule_Import().

فقط برای استفاده‌ی داخلی. به جای آن از import_curses استفاده کنید.

© حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرم‌افزار پایتون نسخه ۲ منتشر شده است.
مثال‌ها، دستورالعمل‌ها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شده‌اند.
برای اطلاعات بیشتر به تاریخچه و مجوز مراجعه کنید.

بنیاد نرم‌افزار پایتون یک شرکت غیرانتفاعی است. لطفاً کمک مالی کنید.

آخرین به‌روزرسانی در نوامبر 12, 2026 (06:19 UTC). آیا اشکالی یافتید؟
ساخته شده با Sphinx 9.1.0.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.