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

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

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


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: راهنمایی برای آغاز برنامه نویسی در لینوکس  (دفعات بازدید: 7357 بار)

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

آفلاین محمد باقر اهتمام

  • High Sr. Member
  • *
  • ارسال: 661
  • جنسیت : پسر
  • محمد باقر حمایت می کند از : Ogre3D , CrystalSpace
    • کتاب و انجمن فارسی گیمپ
دوست عزیز محیط گنوم با gtk و کی دی ای با qt نوشته شده . ساده ترین کاربردشون ساخت پنجره واسه برنامه ها هست . کامپایلر gcc نمی تونه پنجره بسازه حتی گرافیک . اگر با توربو سی در ویندوز کارکرده باشی حتما graphic.h رو دیدی که برای کنترل کیبورد و گرافیک و ... هست توی gcc اینو نداریم و این خوبه چون شما آزادی از کتابخانه هایی که دوست داری استفاده کنی مثلا من دوست دارم از SDL استفاده کنم . حالا می خوام برنامه هایی که بنویسم پنجره داشته باشن منو داشته باشن . شما می تونی از gtk یا qt استفاده کنی این دو کتابخانه هستند(خیلی ساده گفتم) که امکاناتی بهت می دن که در سی یا سی ++ ( یا هر زبانی که قبلا پیاده سازی شده) بتونی پنجره بسازی . بهت پیشنهاد می کنم بی خیال qt بشی . تمرکزت رو روی زبونی که بلدی یعنی سی بزار و در نتیجه gtk بزار . یک ادیتور مثل جی ادیت یا وی ای ام یا نانو انتخاب کن و کدی که برات بالا گذاشتم رو داخلش بزار و با نام helloworld.c ذخیره کن . سپس با دستور زیر کامپایلش کن :
gcc -Wall -g helloworld.c -o helloworld `pkg-config --cflags gtk+-2.0` \
    `pkg-config --libs gtk+-2.0`


آفلاین moi64

  • Jr. Member
  • *
  • ارسال: 43
  • جنسیت : پسر
این کدی که شما گزاشتی :
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title (GTK_WINDOW (window), "Hello World");
  gtk_widget_show (window);
که برای ساخت یه پنجره است . اگر بخام همین پنجره رو بدون کد نوشتن با استفاده از یه محیط ویژوال بگیرم چی پیشنهاد میدید .
من با Qt همین پنجره رو ساختم که کد زیر رو بهم داد
#ifndef HELLOWORDZB1743_H
#define HELLOWORDZB1743_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialog>
#include <QtGui/QHeaderView>

QT_BEGIN_NAMESPACE

class Ui_dialog
{
public:

    void setupUi(QDialog *dialog)
    {
        if (dialog->objectName().isEmpty())
            dialog->setObjectName(QString::fromUtf8("dialog"));
        dialog->resize(400, 300);

        retranslateUi(dialog);

        QMetaObject::connectSlotsByName(dialog);
    } // setupUi

    void retranslateUi(QDialog *dialog)
    {
        dialog->setWindowTitle(QApplication::translate("dialog", "Dialog", 0, QApplication::UnicodeUTF8));
    } // retranslateUi

};

namespace Ui {
    class dialog: public Ui_dialog {};
} // namespace Ui

QT_END_NAMESPACE

#endif // HELLOWORDZB1743_H
خوب مشخصه که کد ++C است برای اینکه کد سی برای GTK بگیرم از چی استفاده کنم ؟



آفلاین aliva

  • Sr. Member
  • *
  • ارسال: 363
  • جنسیت : پسر
    • http://vakilzade.ir
http://glade.gnome.org/

ایشون براتون یه فایل xml تولید می‌کنن شما هم زحمت می‌کشین و او فایل رو تو برنامه لود کرده و سیگنال‌ها رو بش وصل می‌کنین
به همین راحتی به همین خوشمزگی

نمونه
http://rapidshare.com/files/412658664/sample.tar.gz

اگه می‌خاین gtk یاد بگیرین به نظرم این کتاب گزینه‌ی مناسبیه
http://apress.com/book/view/9781590597934

آفلاین fzerorubigd

  • Hero Member
  • *
  • ارسال: 758
  • جنسیت : پسر
  • گوگل دوست خوبیه، فقط باید ازش بپرسی
    • یادداشتهای بیت نیمسوز
نه، QT و GTK دو تا انتخاب کاملا مجزا هستن. ربطی به هم ندارن.
اگه IDE میخوای برو سراغ QT (که البته با GTK کار نمیکنه )‌ .ولی اگه مصری از GTK استفاده کنی، گزینه هایی مثل Code::Block یا anjuta واسه IDE هست.

آفلاین mori64

  • Jr. Member
  • *
  • ارسال: 25
http://glade.gnome.org/

ایشون براتون یه فایل xml تولید می‌کنن شما هم زحمت می‌کشین و او فایل رو تو برنامه لود کرده و سیگنال‌ها رو بش وصل می‌کنین
به همین راحتی به همین خوشمزگی

نمونه
http://rapidshare.com/files/412658664/sample.tar.gz

اگه می‌خاین gtk یاد بگیرین به نظرم این کتاب گزینه‌ی مناسبیه
http://apress.com/book/view/9781590597934

هر دو عالی بودن بخصوص help glade .
از تمام دوستان بابت راهنمایی تشکر فراوان .

آفلاین cyrus

  • Newbie
  • *
  • ارسال: 2
درود
 من یک سورس دستم هست که با زبان سی نوشته شده برای اجرا در لینوکس. اولین باری هست که میخوام با این جور سورس ها کار کنم ولی با یکسری مشکل روبرو شدم. اول یکسری توضیحات در مورد سورس میدم.
برای این سورس 2 رابط گرافیکی طراحی شده. یکی برای لینوکس و دیگری برای ویندوز که با VC6 طراحی شده. کامپایل این برنامه به کمک makefile موجود در سورس انجام میشه. حالا من باید سورس را آنالیز کنم ، باگ های احتمالی را شناسایی کنم و در نهایت کد را توسعه بدم. قصد نهایی من پورت کردن این کد به ویندوز هست. ابزاری که استفاده میکنم cygwin است . ولی تفاوت های اساسی با سورس های تحت داس و ویندوز وجود داره که این کار رو خیلی برای من سخت کرده. من قادر به ترجمه خط به خط برنامه (trace) نیستم. کدی هم که خودم ننوشتم تحلیل بدون این ابزار کار مشکلی میشه. یک نمونه ساده برای توضیح این سختی به شما میدم. فرض کنید شما در یک محیط برنامه نویسی مثل سی یا دلفی برنامه مینوسی. خوب شما یک فایل dsp یا dsw داری که با باز کردن اون به بدنه اصلی سورس و فرم ها دسترسی داری. با ترجمه خط به خط برنامه به یک تابعی میرسی که برنامه نویس کد اون تابع رو در یک کتابخانه که خودش نوشته قرار داده. حالا این کد 20 تا از این کتابخانه ها را با include فراخوانی کرده و حالا اگر شما trace کردن رو ادامه بدی IDE شما به طور خودکار منبع اون فایل با پسوند h را باز میکنه و ادامه trace کردن در اون فایل انجام میشه بعد از اتمام تابع به قطعه کد فراخوان کننده تابع بر میگرده. شما با این ابزار هم یک تصویر سازی از نحوه اجرا کد در ذهن دارید که تحلیل و خطایابی را آسان میکند و هم دیگر نیازی نیست که برای پیدا کردن قطعه کد مربوط به تابع مورد نظر تمام فایل ها رو یکی یکی مرور کنید. حالا سئوال من از شما اینکه با چه ابزاری من میتونم مثل مثال بالا کد را تحلیل کنم؟؟
من سعی کردم از Code::Block کمک بگیرم ولی چون برنامه به کمک Makefile کامپایل میشد به نتیجه نرسیدم.