انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: samis در 08 امرداد 1394، 08:15 ب‌ظ

عنوان: چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: samis در 08 امرداد 1394، 08:15 ب‌ظ
دوستان لطفا ایده بدین!
من یه برنامه دارم که با کیوت نوشته شده و یه جور دیکشنریه درواقع. حالا قرار به این شده که برای این برنامه یه رابطی کاربری جدید تحت مرورگر بسازیم. ینی میخوام که با HTML5 و CSS3 یه ظاهر کاملا جدید براش بسازم که البته کار طراحی هم به صورت کامل انجام شده. حالا مشکل من اینه نمیدونم که چجوری بدون دوباره نوشتن کدهای اصلی برنامه ارتباط بین اون کدای قبلی رو با رابط جدید ایجاد کنم؟
اگه واقعا مجبورم که کدها رو با یه شیوه و زبان دیگه بازنویسی کنم پیشنهاد شما چیه؟
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: hamidrezakp در 08 امرداد 1394، 09:25 ب‌ظ
دوستان لطفا ایده بدین!
من یه برنامه دارم که با کیوت نوشته شده و یه جور دیکشنریه درواقع. حالا قرار به این شده که برای این برنامه یه رابطی کاربری جدید تحت مرورگر بسازیم. ینی میخوام که با HTML5 و CSS3 یه ظاهر کاملا جدید براش بسازم که البته کار طراحی هم به صورت کامل انجام شده. حالا مشکل من اینه نمیدونم که چجوری بدون دوباره نوشتن کدهای اصلی برنامه ارتباط بین اون کدای قبلی رو با رابط جدید ایجاد کنم؟
اگه واقعا مجبورم که کدها رو با یه شیوه و زبان دیگه بازنویسی کنم پیشنهاد شما چیه؟

به چه زبانی نوشته شده؟
کیوت فقط یک فریم ورک(یا کتابخانه) برای ایجاد رابط گرافیکی هست.
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: samis در 08 امرداد 1394، 10:15 ب‌ظ
به چه زبانی نوشته شده؟
طبیعتا ++C
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: alireza.crs در 09 امرداد 1394، 12:55 ق‌ظ
ای کاش برنامه کنسولی بود
اینطوری میتونستی با فریم ورک های Qt و زبان های تحت وب مثل php اونو هم برای دسکتاپ و هم برای وب اماده کنی
فکر کنم بهتره یکم وقت بذاری و کد های مربوط به هسته برنامه رو استخراج کنی.شایدم راه بهتری وجود داشته باشه ولی الان این به ذهنم میرسه
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: samis در 09 امرداد 1394، 01:22 ق‌ظ
فکر کنم بهتره یکم وقت بذاری و کد های مربوط به هسته برنامه رو استخراج کنی.شایدم راه بهتری وجود داشته باشه ولی الان این به ذهنم میرسه
ممنون دوست عزیز
خب به نظر شما بعد اینکه کدها رو استخراج کردم با چه زبونی دوباره اونارو بنویسم؟
آخه من مشکلم سره کتابخونه هاییه که تو برنامه استفاده شده و اکثرشون احتمالا مناسب استفاده در PHP نیستن.
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: alireza.crs در 09 امرداد 1394، 05:55 ق‌ظ
فکر کنم بهتره یکم وقت بذاری و کد های مربوط به هسته برنامه رو استخراج کنی.شایدم راه بهتری وجود داشته باشه ولی الان این به ذهنم میرسه
ممنون دوست عزیز
خب به نظر شما بعد اینکه کدها رو استخراج کردم با چه زبونی دوباره اونارو بنویسم؟
آخه من مشکلم سره کتابخونه هاییه که تو برنامه استفاده شده و اکثرشون احتمالا مناسب استفاده در PHP نیستن.
برنامه رو به صورت کامپایل شده حاظر کنین و بعد تنها کاری که باید با php انجام بدین اینه که بهش ورودی بدین و خروجی هارو بخونین
ولی قبلش یکم تحقیق کنید شاید راه حل های بهتری وجود داشت

موفق باشین
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: محمد فدوی در 09 امرداد 1394، 10:15 ق‌ظ
وقتی می‌خوای برنامه‌ای رو توی مرورگر اجرا کنی، به احتمال کلا منطق برنامه باید متحول شه. چون موقعی که برنامه توی مرورگر اجرا می‌شه بخشی از برنامه تحت کد سمت کلاینت (Client Side) یا همون جاوااسکریپت و بخش دیگه تحت کد سمت سرور (Server Side) باید اجرا بشه.
خوبی Qt که اینه که می‌شه ازش برای تولید برنامه‌های سمت سرور هم استفاده کرد. این لینک (http://programmers.stackexchange.com/questions/53624/can-c-be-used-as-a-server-side-web-development-language) رو ببین. ولی احتمالا زحمت زیادی باید بکشی تا برنامه‌ت رو تغییر کاربری بدی.
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: samis در 09 امرداد 1394، 06:31 ب‌ظ
برنامه رو به صورت کامپایل شده حاظر کنین و بعد تنها کاری که باید با php انجام بدین اینه که بهش ورودی بدین و خروجی هارو بخونین
راستی؟ چه جالب!!!! اما راستشو بخوای من هیچی راجع به این مکانیزمی که شما گفتین نمیدونم. درسته تو PHP حرفه ای نیستم اما از ظهر که راجع به این قضیه فکر و تحقیق کردم راه حل ساده ای به نطرم نرسید. ینی اصلا نمیدونم چجوری باید اطلاعات رو از اون برنامه ( که کامپایل شده ش به صورت گرافیکیه) بخونم و یا بعدا بتونم بهش اطلاعات رو پاس بدم که اون کار خودشو بکنه.
لطفا اگه خودتون چنین کاری کردین یا حتی جایی دیدین یه سرنخ بهتر بدین که دنبالش بیوفتم چون اونجور که معلومه لابد چنین چیزی هست که شما دارین میگین.

ممنون میشم

خوبی Qt که اینه که می‌شه ازش برای تولید برنامه‌های سمت سرور هم استفاده کرد. این لینک (http://programmers.stackexchange.com/questions/53624/can-c-be-used-as-a-server-side-web-development-language) رو ببین. ولی احتمالا زحمت زیادی باید بکشی تا برنامه‌ت رو تغییر کاربری بدی.

ممنون از اون لینک. کامل خوندمش و حتی اون تکنولوژیایی که معرفی کرده بودن به صورت مختصر دیدم. ۲تا رو قبلا خودم شنیده بودم که اتفاقا اونجا هم به نظر بیشتر تاکید رو اونا بود. یکیش Wt که انگار چیزی شبیه به کیوت برا وبه اما تا اینجایی که من توش شیرجه رفتم مث اینکه زیاد پروژه ی جدیی نیست و ظاهرا خیلی ناقص و ابتداییه و بزرگترین مشکل من که همون استفاده از کتابخونه هاست کماکان باقیست اما همچنان دارم در موردش تحقیق میکنم چون چیز جالبی به نظر میرسه و شاید همین جواب مسئله ی من باشه.
در هر صورت ممنون


کماکان اگه دوستان تجربه ای چیزی دارن ازش استقبال میکنم :)
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: hamidrezakp در 09 امرداد 1394، 08:06 ب‌ظ
برای اینکه بتونین از طریق PHP ورودی بدین و خروجی بگیرین باید برنامه شما بتونه ارگمان رو از ورودی بگیره .و در خروجی چیزی پرینت کنه مثلا :

دستور ls ورودی اش ادرس پوشه است و خروجی اش لیستی از اسم فایل ها و پوشه هاست.

شما باید ورودی رو بگیرین و خروجی رو توی ترمینال (کونسول) چاپ کنید.

مثلا در c++ :
int main(int argc, const char *argv[]) {
   std::string word = argv[1];
     return 0;
}

عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: ngc0der در 09 امرداد 1394، 09:31 ب‌ظ
اگه کد برنامه رو دارین به اضافه تجربه کافی در تغییرش، می تونین از مواردی مثل این https://github.com/mattgodbolt/seasocks استفاده کنین و مثلا با استفاده از websocket اتصال مرورگر با برنامه رو برقرار کنین که در اینجا باید متد onData رو طوری تغییر بدین که کلمه رو بگیره و دقیقا همون تابعی که در برنامه برای ترجمه استفاده میشه رو صدا کنه و رشته رو به مرورگر برگردونه. خب این از قلاب و کرم، قسمت ماهیگیریش با خودتون!
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: بهنام م ک در 12 امرداد 1394، 06:55 ب‌ظ
راستش Wt به نظرم برای شما بهترین گزینه نیست. چون شما گفتین که قبلا رابط جدید رو با HTML5 ساختین و الان آماده ست درحالی که Wt برا خودش استایل اختصاصی داره و باید دوباره بیایید و خیلی چیزا رو بازطراحی کنین چون شاید با اون قبلیا هماهنگ نباشه. در ضمن کل کد رو مجبورید دوباره نویسی کنین. اما برا کتابخونه ها در صورتی که مخصوص ++C بوده باشن مشکلی پیش نمیاد و میتونین همچنان استفاده کنین.
حقیقتش اینه که من هیچوقت کاری شبیه اینو انجام ندادم اما به نظرم همین راه حل ngc0der جواب بده. ینی اگه زمان برات مهمه اول برو سراغ این یکی

پ ن : آواتارتم تو حلقم  ;D ;D ;D
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: M.Mehdi در 12 امرداد 1394، 07:07 ب‌ظ
من اطلاعاتی در زمینه کیوت ندارم
اما چون php کار میکنم , ما اگر برنامتون ورودی رو از ترمینال بگیره و خروجی ترمینال بده میتونید با استفاده از ssh برنامه رو در یک سرور اجرا کنید و ورودی و خروجی رو توسط php انجام بدید
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: samis در 13 امرداد 1394، 04:13 ب‌ظ
راستش Wt به نظرم برای شما بهترین گزینه نیست. چون شما گفتین که قبلا رابط جدید رو با HTML5 ساختین و الان آماده ست درحالی که Wt برا خودش استایل اختصاصی داره و باید دوباره بیایید و خیلی چیزا رو بازطراحی کنین چون شاید با اون قبلیا هماهنگ نباشه. در ضمن کل کد رو مجبورید دوباره نویسی کنین.
راستش با Wt به مشکل خوردم. و الان که قسمتی از کد رو دوباره نوشتم میبینم که هماهنگ کردن استایل  Wt با رابطی که از قبل طراحی شده کار تقریبا غیر ممکنیه. ینی حداقل من نمیتونم این کارو انجام بدم.
اگه کد برنامه رو دارین به اضافه تجربه کافی در تغییرش، می تونین از مواردی مثل این https://github.com/mattgodbolt/seasocks استفاده کنین و مثلا با استفاده از websocket اتصال مرورگر با برنامه رو برقرار کنین که در اینجا باید متد onData رو طوری تغییر بدین که کلمه رو بگیره و دقیقا همون تابعی که در برنامه برای ترجمه استفاده میشه رو صدا کنه و رشته رو به مرورگر برگردونه. خب این از قلاب و کرم، قسمت ماهیگیریش با خودتون!
متاسفانه از اون seasocks هم نمیتونم استفاده کنم. ینی هر کاری کردم نمیتونستم متوجه بشم چطوری باس باهاش کار کرد. دایکیومنتیشن خوبی هم نداره. لطفا اگه شما ngc0der عزیز اگه خودتون تجربه ای در کار باهاش دارین راهنمایی کنین.چون واقعا ماهیگیریش خیلی سخته. لطفا یه قلاب و کرم دیگه هم مرحمت کن  ;D
من اطلاعاتی در زمینه کیوت ندارم
اما چون php کار میکنم , ما اگر برنامتون ورودی رو از ترمینال بگیره و خروجی ترمینال بده میتونید با استفاده از ssh برنامه رو در یک سرور اجرا کنید و ورودی و خروجی رو توسط php انجام بدید
گزینه ی بعدیم قطعا کار کردن با یه برنامه ی کنسولی خواهد بود. ینی مجبورم که بشینم و خروجی این دیکشنری آماده رو بیارم تو ترمینال و از اونجا بهش SSH بزنم.
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: alireza.crs در 14 امرداد 1394، 12:48 ق‌ظ
نقل‌قول
گزینه ی بعدیم قطعا کار کردن با یه برنامه ی کنسولی خواهد بود. ینی مجبورم که بشینم و خروجی این دیکشنری آماده رو بیارم تو ترمینال و از اونجا بهش SSH بزنم.
لازم به ssh زدن نیست
فقط ورودی بدین و خروجی بخونین .همین!
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: ngc0der در 15 امرداد 1394، 08:06 ب‌ظ
نقل‌قول
متاسفانه از اون seasocks هم نمیتونم استفاده کنم. ینی هر کاری کردم نمیتونستم متوجه بشم چطوری باس باهاش کار کرد. دایکیومنتیشن خوبی هم نداره. لطفا اگه شما ngc0der عزیز اگه خودتون تجربه ای در کار باهاش دارین راهنمایی کنین.چون واقعا ماهیگیریش خیلی سخته. لطفا یه قلاب و کرم دیگه هم مرحمت کن  ;D
به نظر من که مستندات کافی داره با این حال اول پروژه رو با گیت clone کنین بعد به مسیر پروژه برین و طبق مستند اول دستورات
$ autoconf
$ ./configure
$ make
رو به ترتیب اجرا کنین بعد هم bin/ws_testخب حالا برنامه سرور اجرا شده که اگه در مرورگر چند تا تب باز کنین و آدرس http://localhost:9090/ رو در اونها وارد کنین می بینین که با زدن شمارنده مقدار اون در همه تبها زیاد میشه.سورس سرور در src/app/c/ws_test.cpp و سورس سمت مرورگر در src/ws_test_web/ قرار داره که منطق سمت مرورگر در دو فایل index.html و app.js پیاده سازی شده.در app.js یه websocket ایجاد شده که با کلیک روی دکمه شمارنده یه پیام به سرور می فرسته و در سرور به شمارنده یکی اضافه میشه و نهایتا پیغام set با مقدار جدید برای همه کلاینتها ارسال میشه.همونطور که قبلا گفتم با تغییر متد onData در سرور می تونین مثلا کلمه رو بگیرین و جواب رو برگردونین.با توجه به سورس می تونین فایلهای مورد نیاز رو به فایل پروژه کیوت اضافه کنین.
این دیگه فراتر از ماهیگیری و قلاب و کرم شد تقریبا در حد ماهی آماده طبخ!
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: سید وحید رضا برهانی در 15 امرداد 1394، 11:44 ب‌ظ
ببین اگر برنامه ات برای سرگرمی خودت هست . من یک راه عمومی دارم که وقتی می خوام یک برنامه ی گرافیکی را با ترمینال کنترل کنم ازش استفاده می کنم.
شاید مسخره باشه ولی واقعا کار می کنه!
یک نرم افزاری هست به اسم xdotool کارش اینکه که موس و صفحه کلید رو شبیه سازی می کنه . یعنی می تونی توی خط فرمان بهش بگی برو توی فلان نقطه راست کلیک کن بعد توی فلان جا فلان عبارت رو تایپ کن یا موقعیت کنونی موس رو بده ! و از اینجور کارها. حالا اگر بتونی اون نرم افزار رو روی vnc اجرا کنی بعد داخل اون vnc یک ترمینال باز کنی می تونی با xdotool دقیقا کارهایی که می خوای رو لیست کنی اون به ترتیب خودش انجام بده. مثلا بهش بگی فلان کلمه رو اونجا تایپ کن و بعد روی فلان نقطه کلیک کن و جوابش رو توی فلان فایل کپی کن.
البته این راه اصلا اصولی نیست ولی خب کار می کنه!
عنوان: پاسخ : چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟
ارسال شده توسط: samis در 16 امرداد 1394، 01:39 ق‌ظ
این دیگه فراتر از ماهیگیری و قلاب و کرم شد تقریبا در حد ماهی آماده طبخ!
آره ممنون فوق العاده شد ;D
اما با عرض معذرت تو این قسمتاش مشکل نداشتم. تو پیاده سازی همون قسمت آخر مشکل داشتم که البته الان تا حدودی حل شده