| wish(1) | برنامههای Tk | wish(1) |
نام (NAME)
wish - پوسته پنجرهای ساده
خلاصه دستور (SYNOPSIS)
wish ?-encoding name? ?fileName arg arg ...?
گزینهها (OPTIONS)
- -encoding name
- کدگذاری متن ذخیرهشده در fileName را مشخص میکند. این گزینه تنها پیش از آرگومان fileName شناخته میشود.
- -colormap new
- مشخص میکند که پنجره به جای استفاده از نقشه رنگ پیشفرض صفحه نمایش، باید یک نقشه رنگ (colormap) اختصاصی جدید داشته باشد.
- -display display
- نمایشگر (و صفحه نمایشی) که پنجره باید در آن نمایش داده شود.
- -geometry geometry
- ابعاد و موقعیت (geometry) اولیه برای استفاده در پنجره. در صورت مشخص شدن این گزینه، مقدار آن در متغیر سراسری geometry در مفسر Tcl برنامه ذخیره میشود.
- -name name
- استفاده از name به عنوان عنوان نمایشدادهشده در پنجره، و به عنوان نام مفسر برای دستورهای send.
- -sync
- اجرای همگام تمامی دستورهای کارساز X، به طوری که خطاها بیدرنگ گزارش شوند. این امر منجر به اجرای بسیار کندتر خواهد شد، اما برای اشکالزدایی مفید است.
- -use id
- مشخص میکند که پنجره اصلی برنامه به جای ایجاد شدن به عنوان یک پنجره مستقل سطح بالا (toplevel)، باید درون پنجرهای با شناسه id تعبیه (embed) شود. Id باید به همان صورتی که مقدار گزینه -use برای ویجتهای toplevel مشخص میشود، تعیین گردد (یعنی قالبی مشابه با مقدار بازگرداندهشده توسط دستور winfo id دارد).
- -visual visual
- حالت بصری (visual) مورد استفاده برای پنجره را مشخص میکند. Visual میتواند هر یک از قالبهای پشتیبانیشده توسط رویه Tk_GetVisual را داشته باشد.
- --
- تمام
آرگومانهای
باقیمانده
را بدون
تفسیر به
متغیر argv
اسکریپت
ارسال
میکند. این
سازوکاری
را برای
ارسال
آرگومانهایی
مانند -name به
اسکریپت
فراهم
میکند، به
جای آنکه
توسط wish
تفسیر شوند.
توضیحات (DESCRIPTION)
دستور Wish یک برنامه ساده متشکل از زبان دستوری Tcl، جعبهابزار Tk، و یک برنامه اصلی است که دستورها را از ورودی استاندارد یا از یک فایل میخواند. این برنامه یک پنجره اصلی ایجاد کرده و سپس دستورهای Tcl را پردازش میکند. اگر wish همراه با آرگومان فراخوانی شود، چند آرگومان نخست، ?-encoding name? ?fileName?، نام یک فایل اسکریپت و به صورت اختیاری، کدگذاری دادههای متنی ذخیرهشده در آن فایل اسکریپت را مشخص میکنند. مقداری برای fileName شناسایی میشود اگر آرگومان مربوطه با “” آغاز نشود.
اگر هیچ آرگومانی وجود نداشته باشد، یا آرگومانها یک fileName را مشخص نکنند، آنگاه wish دستورهای Tcl را به صورت تعاملی از ورودی استاندارد میخواند. پردازش دستورها تا زمانی که تمام پنجرهها حذف (بسته) شوند یا به انتهای فایل (EOF) در ورودی استاندارد برسد، ادامه خواهد یافت. اگر فایلی به نام “” در دایرکتوری خانگی کاربر وجود داشته باشد، wish درست پیش از خواندن اولین دستور از ورودی استاندارد، آن فایل را به عنوان یک اسکریپت Tcl اجرا میکند.
اگر آرگومانهای دادهشده به wish یک fileName را مشخص کنند، آنگاه با fileName به عنوان نام یک فایل اسکریپت برخورد میشود. Wish اسکریپت موجود در fileName را ارزیابی و اجرا میکند (که احتمالاً یک رابط کاربری میسازد)، سپس تا زمانی که تمام پنجرهها حذف (بسته) شوند به رویدادها پاسخ میدهد. دستورها از ورودی استاندارد خوانده نخواهند شد. هنگامی که نام یک فایل اسکریپت در خط فرمان wish ارائه میشود، هیچ ارزیابی خودکاری از “” صورت نمیگیرد، اما در صورت تمایل، فایل اسکریپت همواره میتواند با دستور source آن را اجرا کند.
توجه داشته باشید که در ویندوز، برنامه wishversion.exe از یک جنبه مهم دیگر نیز با برنامه tclshversion.exe تفاوت دارد: این برنامه به کنسول استاندارد ویندوز متصل نمیشود و در عوض یک برنامه پنجرهای است. به همین دلیل، علاوه بر این دسترسی به دستور console اختصاصی خود را فراهم میکند..SH "پردازش گزینهها (OPTION PROCESSING)"
Wish بهطور خودکار تمامی گزینههای خط فرمان شرحدادهشده در خلاصهی گزینهها (OPTIONS) در بالا را پردازش میکند. هر آرگومان دیگر خط فرمان بجز این موارد، با استفاده از متغیرهای argc و argv که در ادامه توضیح داده شدهاند، به برنامه منتقل میشوند.
نام و کلاس برنامه (APPLICATION NAME AND CLASS)
نام برنامه، که برای مقاصدی چون دستورات send به کار میرود، از گزینه -name در صورت تعیین شدن گرفته میشود؛ در غیر این صورت از fileName (چنانچه مشخص شده باشد) یا از نام دستوری که wish با آن فراخوانی شده است گرفته میشود. در دو حالت آخر، اگر نام دارای نویسهی “” باشد، تنها نویسههای پس از آخرین ممیز (اسلش) به عنوان نام برنامه استفاده میشوند.
کلاس برنامه، که برای مقاصدی چون تعیین گزینهها با مشخصهی RESOURCE_MANAGER یا فایل .Xdefaults به کار میرود، همانند نام آن است با این تفاوت که حرف اول آن بزرگ (capitalized) نوشته میشود.
متغیرها (VARIABLES)
Wish متغیرهای Tcl زیر را مقداردهی میکند:
- argc
- شامل تعداد آرگومانهای arg (در صورت عدم وجود 0)، بدون احتساب گزینههای شرحدادهشده در بالا.
- argv
- شامل یک فهرست (list) از زبان Tcl است که عناصر آن به ترتیب آرگومانهای arg هستند که پس از گزینه -- قرار گرفتهاند یا با هیچیک از گزینههای توضیحدادهشده در گزینهها (OPTIONS) بالا مطابقت ندارند، یا در صورت نبود چنین آرگومانهایی، یک رشتهی خالی است.
- argv0
- در صورت تعیین fileName حاوی آن خواهد بود؛ در غیر این صورت، حاوی نامی است که wish با آن فراخوانی شده است.
- geometry
- اگر گزینه -geometry تعیین شده باشد، wish مقدار آن را در این متغیر کپی میکند. اگر این متغیر پس از ارزیابی fileName همچنان وجود داشته باشد، wish از مقدار آن در دستور wm geometry برای تنظیم اندازه و موقعیت (geometry) پنجرهی اصلی استفاده میکند.
- tcl_interactive
- اگر wish دستورات را به صورت تعاملی بخواند (fileName مشخص نشده باشد و ورودی استاندارد یک دستگاه شبیه ترمینال باشد) حاوی 1 است، و در غیر این صورت 0.
فایلهای اسکریپت (SCRIPT FILES)
اگر یک اسکریپت Tcl را در فایلی ایجاد کنید که نخستین خط آن به این صورت باشد:
#!/usr/local/bin/wish
یک رویکرد حتی بهتر این است که فایلهای اسکریپت خود را با این سه خط آغاز کنید:
#!/bin/sh
# the next line restarts using wish \
exec wish "$0" ${1+"$@"}
پایان یک فایل اسکریپت ممکن است با پایان فیزیکی رسانه مشخص شود، یا با نویسهی “” (“”) چنانچه این نویسه در فایل وجود داشته باشد، برنامه wish متن را تا این نویسه (بدون احتساب خود آن) میخواند. برنامهای که نیازمند وجود این نویسه در فایل باشد میتواند آن را به صورت “” “” یا “” کدگذاری کند؛ یا میتواند با استفاده از دستوراتی چون format یا binary آن را تولید نماید.
اعلانها (PROMPTS)
هنگامی که wish به صورت تعاملی فراخوانی شود، معمولاً برای هر دستور با “” اعلان میدهد. شما میتوانید با مقداردهی متغیرهای tcl_prompt1 و tcl_prompt2 اعلان را تغییر دهید. اگر متغیر tcl_prompt1 وجود داشته باشد، باید شامل یک اسکریپت Tcl برای خروجی دادن اعلان باشد؛ در این حالت wish به جای نمایش اعلان پیشفرض، اسکریپت موجود در tcl_prompt1 را ارزیابی میکند. متغیر tcl_prompt2 نیز به همین صورت زمانی استفاده میشود که یک خط جدید وارد شده باشد اما دستور جاری هنوز کامل نشده باشد؛ اگر tcl_prompt2 تنظیم نشده باشد، هیچ اعلانی برای دستورات ناتمام در خروجی چاپ نخواهد شد.
همچنین ببینید (SEE ALSO)
tclsh(1), toplevel(n), Tk_Main(3), Tk_MainLoop(3), Tk_MainWindow(3).SH "کلیدواژهها (KEYWORDS)" برنامه، آرگومان، مفسر، اعلان، فایل اسکریپت، پوسته، جعبهابزار، toplevel
| 8.0 | Tk |