انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: سید وحید رضا برهانی در 21 شهریور 1396، 12:04 بظ
-
سلام
من یک تکست باکس می خوام درست کنم مثلا شبیه به vim یا نانو که توش بشه بشه با کلیدهای جهت نما خرکت کرد و مثلا یک متن رو ویرایش کرد و بعد توی فایل ذخیره بشه.در واقع یک جور تکست ادیتور خیلی ابتدایی و ساده می خوام.
یکسری پروژه ها هست که با curses نوشته شده اند که خیلی پیچیده اند که استخراج چیزی که من می خوام کار من نیست :)
-----------
راه حل: استفاده از :
https://github.com/firecat53/py_curses_editor
یا لینکش در pypi :
https://pypi.python.org/pypi/py_curses_editor/1.2.1
و ساده ترین مثال برای استفاده:
import editor
text=editor.editor()
و پارامترهایی که می گیره:
stdscr: the curses window object
title: title text
inittext: inital text content string
win_location: tuple (y,x) for location of upper left corner
win_size: tuple (rows,cols) size of the editor window
box: True/False whether to outline editor with a box
max_paragraphs: maximum paragraphs (text separated by \n) allowed.
Default=0 (unlimited)
If initext is longer than max_paragraphs, extra
lines _will be truncated_!
pw_mode: True/False. Whether or not to show text entry
(e.g. for passwords)
edit: True/False. Default is True for editor. Use False
to have a scrollable popup window.
وبا کلید F2 یا کنترل+x ذخیره می کنه و با F3 یا ESC یا کنترل +c هم کنسل می کنه که اگر کنسل بشه inittext رو برمی گردونه
-
باید قبلش مشخّص کنی که می]وای از کدوم چارچوب گرافیکی استفاده کنی و بعد بری سراغ مستندات اون چارچوب.
-
من محیط گرافیکی نمی خوام. می خوام توی خط فرمان داشته باشم. مثل نانو یا پیکو ولی خیلی ساده تر. دقیق ترش همون textbox هست که توی kdialog یا xdialog یا دقیقترش مثل dialog و... وجود داره در همین حد می خوام.
هدفم اینکه که یک فایل متنی با آدرس ثابتی رو به کاربر نشون بدم بعد کاربر اون رو ویرایش کنه و ذخیره بشه.
-
من محیط گرافیکی نمی خوام. می خوام توی خط فرمان داشته باشم. مثل نانو یا پیکو ولی خیلی ساده تر. دقیق ترش همون textbox هست که توی kdialog یا xdialog یا دقیقترش مثل dialog و... وجود داره در همین حد می خوام.
هدفم اینکه که یک فایل متنی با آدرس ثابتی رو به کاربر نشون بدم بعد کاربر اون رو ویرایش کنه و ذخیره بشه.
این (https://stackoverflow.com/questions/33599407/save-file-content-from-editbox-in-bash) چطوره؟
dialog --editbox "INPUT FILE" 30 130 2> "OUTPUT FILE"; clear
-
شل اسکریپت هم نمی خوام چون قراره روی محتویات هم قبل از نشون دادن و هم قبل از ذخیره کلی تغییر صورت بگیره که با پایتون بهتر از شل اسکریپت می شه انجامش داد.
من فقط پایتون (۲یا۳ فرقی نمی کنه) می خوام چون بقیه کدها آماده است و فقط همین تیکه وسطش مونده.
-
شل اسکریپت هم نمی خوام چون قراره روی محتویات هم قبل از نشون دادن و هم قبل از ذخیره کلی تغییر صورت بگیره که با پایتون بهتر از شل اسکریپت می شه انجامش داد.
من فقط پایتون (۲یا۳ فرقی نمی کنه) می خوام چون بقیه کدها آماده است و فقط همین تیکه وسطش مونده.
os.system('dialog --editbox "%s" 30 130 2> "%s"; clear' % (INPUT, OUTPUT))
8) ;D
-
:D
آره خب اینم یک راهیه . ولی ترجیج می دم که پایتون خالص باشه.
-
:D
آره خب اینم یک راهیه . ولی ترجیج می دم که پایتون خالص باشه.
دوست عزیز این و خیلی از قابلیت های دیگه توی curses قابل مصرف هستند.
پایتون نمیفهمه که خط فرمان چیه و باید از curses استفاده بشه و با سیستم ارتباط داشته باشه پس پایتون خالص یکمی دور از دسترسه.
curses سخته ولی جواب شما همین هستش. خود vim از curses استفاده میکنه. شاید گزینه های دیگه ای مختص پایتون داشته باشند ولی من ازش اطلاعی ندارم.
-
آره من هم گفته بودم که با curses می شه ولی پروژه هایی رو که دیدم رو نمی تونستم بفهمم :)
یکسری پروژه ها هست که با curses نوشته شده اند که خیلی پیچیده اند که استخراج چیزی که من می خوام کار من نیست :)
ولی در طی جست و جوهای بیشتر این رو پیدا کردم:
https://github.com/firecat53/py_curses_editor