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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: چطور میتونم برای یه برنامه نوشته شده با کیوت یه رابط گرافیکی دیگه بسازم؟  (دفعات بازدید: 3750 بار)

0 کاربر و 5 مهمان درحال مشاهده موضوع.

آفلاین samis

  • Full Member
  • *
  • ارسال: 112
دوستان لطفا ایده بدین!
من یه برنامه دارم که با کیوت نوشته شده و یه جور دیکشنریه درواقع. حالا قرار به این شده که برای این برنامه یه رابطی کاربری جدید تحت مرورگر بسازیم. ینی میخوام که با HTML5 و CSS3 یه ظاهر کاملا جدید براش بسازم که البته کار طراحی هم به صورت کامل انجام شده. حالا مشکل من اینه نمیدونم که چجوری بدون دوباره نوشتن کدهای اصلی برنامه ارتباط بین اون کدای قبلی رو با رابط جدید ایجاد کنم؟
اگه واقعا مجبورم که کدها رو با یه شیوه و زبان دیگه بازنویسی کنم پیشنهاد شما چیه؟
به گمانم در هیچ جای دنیا دو الف مست را پیدا نخواهید کرد! البته بجز در سردابه های الف های سیاه بیشه!

آفلاین hamidrezakp

  • Sr. Member
  • *
  • ارسال: 432
  • جنسیت : پسر
  • Life is Good With GNU/Linux
    • Hamidrezakp Web Site
دوستان لطفا ایده بدین!
من یه برنامه دارم که با کیوت نوشته شده و یه جور دیکشنریه درواقع. حالا قرار به این شده که برای این برنامه یه رابطی کاربری جدید تحت مرورگر بسازیم. ینی میخوام که با HTML5 و CSS3 یه ظاهر کاملا جدید براش بسازم که البته کار طراحی هم به صورت کامل انجام شده. حالا مشکل من اینه نمیدونم که چجوری بدون دوباره نوشتن کدهای اصلی برنامه ارتباط بین اون کدای قبلی رو با رابط جدید ایجاد کنم؟
اگه واقعا مجبورم که کدها رو با یه شیوه و زبان دیگه بازنویسی کنم پیشنهاد شما چیه؟

به چه زبانی نوشته شده؟
کیوت فقط یک فریم ورک(یا کتابخانه) برای ایجاد رابط گرافیکی هست.
HamidRezaKP.ir
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

آفلاین samis

  • Full Member
  • *
  • ارسال: 112
به گمانم در هیچ جای دنیا دو الف مست را پیدا نخواهید کرد! البته بجز در سردابه های الف های سیاه بیشه!

آفلاین alireza.crs

  • Sr. Member
  • *
  • ارسال: 491
  • جنسیت : پسر
ای کاش برنامه کنسولی بود
اینطوری میتونستی با فریم ورک های Qt و زبان های تحت وب مثل php اونو هم برای دسکتاپ و هم برای وب اماده کنی
فکر کنم بهتره یکم وقت بذاری و کد های مربوط به هسته برنامه رو استخراج کنی.شایدم راه بهتری وجود داشته باشه ولی الان این به ذهنم میرسه

آفلاین samis

  • Full Member
  • *
  • ارسال: 112
فکر کنم بهتره یکم وقت بذاری و کد های مربوط به هسته برنامه رو استخراج کنی.شایدم راه بهتری وجود داشته باشه ولی الان این به ذهنم میرسه
ممنون دوست عزیز
خب به نظر شما بعد اینکه کدها رو استخراج کردم با چه زبونی دوباره اونارو بنویسم؟
آخه من مشکلم سره کتابخونه هاییه که تو برنامه استفاده شده و اکثرشون احتمالا مناسب استفاده در PHP نیستن.
به گمانم در هیچ جای دنیا دو الف مست را پیدا نخواهید کرد! البته بجز در سردابه های الف های سیاه بیشه!

آفلاین alireza.crs

  • Sr. Member
  • *
  • ارسال: 491
  • جنسیت : پسر
فکر کنم بهتره یکم وقت بذاری و کد های مربوط به هسته برنامه رو استخراج کنی.شایدم راه بهتری وجود داشته باشه ولی الان این به ذهنم میرسه
ممنون دوست عزیز
خب به نظر شما بعد اینکه کدها رو استخراج کردم با چه زبونی دوباره اونارو بنویسم؟
آخه من مشکلم سره کتابخونه هاییه که تو برنامه استفاده شده و اکثرشون احتمالا مناسب استفاده در PHP نیستن.
برنامه رو به صورت کامپایل شده حاظر کنین و بعد تنها کاری که باید با php انجام بدین اینه که بهش ورودی بدین و خروجی هارو بخونین
ولی قبلش یکم تحقیق کنید شاید راه حل های بهتری وجود داشت

موفق باشین

آفلاین محمد فدوی

  • Sr. Member
  • *
  • ارسال: 485
  • جنسیت : پسر
  • آغاز آزادی از رایانهٔ شخصی
    • آغاز آزادی از رایانهٔ شخصی
وقتی می‌خوای برنامه‌ای رو توی مرورگر اجرا کنی، به احتمال کلا منطق برنامه باید متحول شه. چون موقعی که برنامه توی مرورگر اجرا می‌شه بخشی از برنامه تحت کد سمت کلاینت (Client Side) یا همون جاوااسکریپت و بخش دیگه تحت کد سمت سرور (Server Side) باید اجرا بشه.
خوبی Qt که اینه که می‌شه ازش برای تولید برنامه‌های سمت سرور هم استفاده کرد. این لینک رو ببین. ولی احتمالا زحمت زیادی باید بکشی تا برنامه‌ت رو تغییر کاربری بدی.
اگر به بهداشت و فرهنگ رفتار با حیوانات علاقه دارید، از vetMD.ir دیدن کنید.
وبلاگ شخصی من: http://fadavi.net

آفلاین samis

  • Full Member
  • *
  • ارسال: 112
برنامه رو به صورت کامپایل شده حاظر کنین و بعد تنها کاری که باید با php انجام بدین اینه که بهش ورودی بدین و خروجی هارو بخونین
راستی؟ چه جالب!!!! اما راستشو بخوای من هیچی راجع به این مکانیزمی که شما گفتین نمیدونم. درسته تو PHP حرفه ای نیستم اما از ظهر که راجع به این قضیه فکر و تحقیق کردم راه حل ساده ای به نطرم نرسید. ینی اصلا نمیدونم چجوری باید اطلاعات رو از اون برنامه ( که کامپایل شده ش به صورت گرافیکیه) بخونم و یا بعدا بتونم بهش اطلاعات رو پاس بدم که اون کار خودشو بکنه.
لطفا اگه خودتون چنین کاری کردین یا حتی جایی دیدین یه سرنخ بهتر بدین که دنبالش بیوفتم چون اونجور که معلومه لابد چنین چیزی هست که شما دارین میگین.

ممنون میشم

خوبی Qt که اینه که می‌شه ازش برای تولید برنامه‌های سمت سرور هم استفاده کرد. این لینک رو ببین. ولی احتمالا زحمت زیادی باید بکشی تا برنامه‌ت رو تغییر کاربری بدی.

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


کماکان اگه دوستان تجربه ای چیزی دارن ازش استقبال میکنم :)
« آخرین ویرایش: 09 امرداد 1394، 06:35 ب‌ظ توسط samis »
به گمانم در هیچ جای دنیا دو الف مست را پیدا نخواهید کرد! البته بجز در سردابه های الف های سیاه بیشه!

آفلاین hamidrezakp

  • Sr. Member
  • *
  • ارسال: 432
  • جنسیت : پسر
  • Life is Good With GNU/Linux
    • Hamidrezakp Web Site
برای اینکه بتونین از طریق PHP ورودی بدین و خروجی بگیرین باید برنامه شما بتونه ارگمان رو از ورودی بگیره .و در خروجی چیزی پرینت کنه مثلا :

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

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

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

HamidRezaKP.ir
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

آفلاین ngc0der

  • Full Member
  • *
  • ارسال: 106
اگه کد برنامه رو دارین به اضافه تجربه کافی در تغییرش، می تونین از مواردی مثل این https://github.com/mattgodbolt/seasocks استفاده کنین و مثلا با استفاده از websocket اتصال مرورگر با برنامه رو برقرار کنین که در اینجا باید متد onData رو طوری تغییر بدین که کلمه رو بگیره و دقیقا همون تابعی که در برنامه برای ترجمه استفاده میشه رو صدا کنه و رشته رو به مرورگر برگردونه. خب این از قلاب و کرم، قسمت ماهیگیریش با خودتون!

آفلاین بهنام م ک

  • Full Member
  • *
  • ارسال: 215
  • جنسیت : پسر
راستش Wt به نظرم برای شما بهترین گزینه نیست. چون شما گفتین که قبلا رابط جدید رو با HTML5 ساختین و الان آماده ست درحالی که Wt برا خودش استایل اختصاصی داره و باید دوباره بیایید و خیلی چیزا رو بازطراحی کنین چون شاید با اون قبلیا هماهنگ نباشه. در ضمن کل کد رو مجبورید دوباره نویسی کنین. اما برا کتابخونه ها در صورتی که مخصوص ++C بوده باشن مشکلی پیش نمیاد و میتونین همچنان استفاده کنین.
حقیقتش اینه که من هیچوقت کاری شبیه اینو انجام ندادم اما به نظرم همین راه حل ngc0der جواب بده. ینی اگه زمان برات مهمه اول برو سراغ این یکی

پ ن : آواتارتم تو حلقم  ;D ;D ;D
« آخرین ویرایش: 12 امرداد 1394، 06:57 ب‌ظ توسط بهنام م ک »
من از آنچه تو میگویی بیزارم ولی تا پای مرگ از حق تو برای گفتن آن دفاع میکنم

آفلاین M.Mehdi

  • Jr. Member
  • *
  • ارسال: 60
  • جنسیت : پسر
  • Linux is not the only such operating system
من اطلاعاتی در زمینه کیوت ندارم
اما چون php کار میکنم , ما اگر برنامتون ورودی رو از ترمینال بگیره و خروجی ترمینال بده میتونید با استفاده از ssh برنامه رو در یک سرور اجرا کنید و ورودی و خروجی رو توسط php انجام بدید

آفلاین samis

  • Full Member
  • *
  • ارسال: 112
راستش Wt به نظرم برای شما بهترین گزینه نیست. چون شما گفتین که قبلا رابط جدید رو با HTML5 ساختین و الان آماده ست درحالی که Wt برا خودش استایل اختصاصی داره و باید دوباره بیایید و خیلی چیزا رو بازطراحی کنین چون شاید با اون قبلیا هماهنگ نباشه. در ضمن کل کد رو مجبورید دوباره نویسی کنین.
راستش با Wt به مشکل خوردم. و الان که قسمتی از کد رو دوباره نوشتم میبینم که هماهنگ کردن استایل  Wt با رابطی که از قبل طراحی شده کار تقریبا غیر ممکنیه. ینی حداقل من نمیتونم این کارو انجام بدم.
اگه کد برنامه رو دارین به اضافه تجربه کافی در تغییرش، می تونین از مواردی مثل این https://github.com/mattgodbolt/seasocks استفاده کنین و مثلا با استفاده از websocket اتصال مرورگر با برنامه رو برقرار کنین که در اینجا باید متد onData رو طوری تغییر بدین که کلمه رو بگیره و دقیقا همون تابعی که در برنامه برای ترجمه استفاده میشه رو صدا کنه و رشته رو به مرورگر برگردونه. خب این از قلاب و کرم، قسمت ماهیگیریش با خودتون!
متاسفانه از اون seasocks هم نمیتونم استفاده کنم. ینی هر کاری کردم نمیتونستم متوجه بشم چطوری باس باهاش کار کرد. دایکیومنتیشن خوبی هم نداره. لطفا اگه شما ngc0der عزیز اگه خودتون تجربه ای در کار باهاش دارین راهنمایی کنین.چون واقعا ماهیگیریش خیلی سخته. لطفا یه قلاب و کرم دیگه هم مرحمت کن  ;D
من اطلاعاتی در زمینه کیوت ندارم
اما چون php کار میکنم , ما اگر برنامتون ورودی رو از ترمینال بگیره و خروجی ترمینال بده میتونید با استفاده از ssh برنامه رو در یک سرور اجرا کنید و ورودی و خروجی رو توسط php انجام بدید
گزینه ی بعدیم قطعا کار کردن با یه برنامه ی کنسولی خواهد بود. ینی مجبورم که بشینم و خروجی این دیکشنری آماده رو بیارم تو ترمینال و از اونجا بهش SSH بزنم.
به گمانم در هیچ جای دنیا دو الف مست را پیدا نخواهید کرد! البته بجز در سردابه های الف های سیاه بیشه!

آفلاین alireza.crs

  • Sr. Member
  • *
  • ارسال: 491
  • جنسیت : پسر
نقل‌قول
گزینه ی بعدیم قطعا کار کردن با یه برنامه ی کنسولی خواهد بود. ینی مجبورم که بشینم و خروجی این دیکشنری آماده رو بیارم تو ترمینال و از اونجا بهش SSH بزنم.
لازم به ssh زدن نیست
فقط ورودی بدین و خروجی بخونین .همین!

آفلاین ngc0der

  • Full Member
  • *
  • ارسال: 106
نقل‌قول
متاسفانه از اون 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 در سرور می تونین مثلا کلمه رو بگیرین و جواب رو برگردونین.با توجه به سورس می تونین فایلهای مورد نیاز رو به فایل پروژه کیوت اضافه کنین.
این دیگه فراتر از ماهیگیری و قلاب و کرم شد تقریبا در حد ماهی آماده طبخ!