PDA

View Full Version : سوال: چی کار کنم این سورس کد بتونه با موفقیت ران بشه؟



motherboard
سه شنبه 27 خرداد 1393, 20:24 عصر
سلام.همان طور که در اموزش ها امده است.وقتی که یک پروژه استاندارد کیوت رو قراره ایجاد کنیم از Qt Widget Application استفاده می کنیم.و زمانی که پروژه ایجاد میشه دو سورس تحت پسوند cpp به نام های mainwindow و main رو داریم.و همچنین یک هدر فایل mainwindow رو داریم و همچنین در فرم یک mainwindow.ui رو داریم.اما این کدی که شما می بینید مربوط به کتاب انگلیسی اموزشی کیوت و اولین کد شروع اون کتاب هست.مشکلم اینه که نمیدونم چه طوری این کد رو اجرا کنم.از روند کد به خوبی اگاه هستم اما روند پیاده سازی و ایجاد پروژه اون کد برام مبهم هستش!!!!!!

#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel label("Hello World");
label.show();
return a.exec();
}


کار این کد اینه که عبارت Hello World رو در یک پنجره چاپ میکنه.

حمید رضا رحیمیان
سه شنبه 27 خرداد 1393, 20:55 عصر
سلام من منظور شما را خوب نفهمیدم اگر شما میخواهید یک صفحه جدید با یک label ایجاد کنید به صورت زیر میشه


#include <QApplication>
#include <QtWidgets>
#include <QHBoxLayout>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QWidget *window = new QWidget;
QLabel *label=new QLabel("label");

QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(label);

window->setLayout(layout);
window->show();
return a.exec();
}

motherboard
سه شنبه 27 خرداد 1393, 21:13 عصر
یک کتابی هست به اسم C++ GUI Programming with Qt 4, Second Edition که کتاب بدی نیست.این کتاب برای شروع اموزش کیوت اومده کدی که در اولین پست ذکر کردم رو اموزش داده.و وقتی متون انگلیسیش رو ترجمه می کردم چیز خاصی در مورد اینکه باید پروژه خاصی رو باز کنیم و یا چیز خاصی رو اضافه کنیم ننوشته بود.الان من مشکلی که دارم اینه که این کدی که به عنوان شروع کیوت اموزش داده شده رو چه طور باید در کیوت پیاده سازی کنم و اجرا کنم؟مثلا چیزی که در اموزش اینجا در ابتدای بحث اورده شده اینه که از Qt Widget Application استفاده کنیم و بقیه مطالب.اما وقتی من میام به این طریق پروژه درست می کنم دیگه نمیدونم اون کد کتاب رو چه طور در این پروژه ای که در اموزش اینجا توضیح داده شده رو پیاده سازی کنم و ران کنم.من قرار نیست کد جدیدی رو بنویسم فقط نمیدونم حالا که اومدم طبق اموزش پروژه استاندارد کیوت رو باز کردم چگونه این کد کتاب رو در پروژه پیاده سازی کنم؟مشکلم با محتوای کد نیست بلکه مشکلم در پیاده سازی کد در یک پروژه استاندارد Qt Widget Application هستش.این چیزی هست که نمیدونم.

motherboard
چهارشنبه 28 خرداد 1393, 01:35 صبح
در مورد این پروژه هایی که باز می کنیم یک سری مشکل در فهمش دارم.ببینید مثلا فرض کنیم که پروژه ای رو به صورت Qt Widget Application باز کردیم.حالا من قراره که کد پایین رو اجرا کنم.واقعا نمیدونم چه کار باید بکنم.ایا فایل جدید درست کنم؟درست نکنم؟مشکلم با خود کد نیست مشکلم با نحوه قرار دادن کد در محیط ویرایشگر کیوت هستش.مثل این می مونه که یک نفر قراره با دوتا هدرفایل و یک دستور cout عبارت good by رو نمایش بده و اتفاقا می دونه کدش به چه ترتیب و چه ریختی هستش اما بلد نیست پروژه مناسبش رو ایجاد کنه تا توش کدنویسی کنه !!!!!!! الان من ایجاد کردن پروژه در کیوت رو بلدم و حتی ایجاد کردن فرم رو هم بلد هستم.با ui هم اشنایی دارم.حتی تو اون بخش اموزش تونستم یک اسم و پیامی رو توسط ()click نمایش بدم اما متاسفانه تو پیاده سازی این کد و اجرای اون سردرگم هستم.از کد سردرمیارم.اما نمیدونم چه جوری تو کیوت استفاده کنم!!!! امیدوارم متوجه شده باشید.

#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel label("Hello World");
label.show();
return a.exec();
}

motherboard
چهارشنبه 28 خرداد 1393, 13:31 عصر
اوکی شد.باید تنها در قسمت main.cpp کد رو وارد می کردم.تنها مشکلم همین بود و درخواست تغییر در کد رو نکرده بودم.فقط سورس پای ثابت برنامه رو نمیدونستم دقیق کدومه که بیام کد رو در داخل اون بذارم.الان سوالی که دارم اینه که ایا وجود mainwindow چه در حالت cpp و چه در حالت ui لازم و واجب هست؟؟؟

120290

کامبیز اسدزاده
چهارشنبه 28 خرداد 1393, 14:02 عصر
سلام.همان طور که در اموزش ها امده است.وقتی که یک پروژه استاندارد کیوت رو قراره ایجاد کنیم از Qt Widget Application استفاده می کنیم.و زمانی که پروژه ایجاد میشه دو سورس تحت پسوند cpp به نام های mainwindow و main رو داریم.و همچنین یک هدر فایل mainwindow رو داریم و همچنین در فرم یک mainwindow.ui رو داریم.اما این کدی که شما می بینید مربوط به کتاب انگلیسی اموزشی کیوت و اولین کد شروع اون کتاب هست.مشکلم اینه که نمیدونم چه طوری این کد رو اجرا کنم.از روند کد به خوبی اگاه هستم اما روند پیاده سازی و ایجاد پروژه اون کد برام مبهم هستش!!!!!!

#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel label("Hello World");
label.show();
return a.exec();
}


کار این کد اینه که عبارت Hello World رو در یک پنجره چاپ میکنه.


خب ببینید در هر کتاب یا هر مقاله ای که مربوط به آموزش ها باشه در حالت عادی و غیر مقدماتی و پایه اینگونه تصور میشه که شما با کد نویسی ابتدایی آشنا هستید حالا وقتی در این مثالی که زدین بر اساس اینکه شما فایل ها و کد های کلی رو در پروژه دارید مثال زده شده.

شما با توجه به اینکه در تمامی پروژه های Qt توابع main وجود داره باید جایگزین کد رو انجام بدین.
سوالتون خیلی خیلی ابتدایی هست برای تجزیه تحلیلش واقعا نمیدونم چطور باید راهنمایی کنم چون قوانین دقیقا همین قوانین موجود در استاندارد های C++ هستش یعنی تابع اجرایی و بعدش هم مشخصه یک نمونه گیری و اجرای دستور نمایش برچسب با عنوان داخلی Hello World.

شما در قسمت آموزش های C++ به استاندارد نویسی C++ توجه کنید یکمی جزئی تر فکر کنید به هر حال درک خواهید کرد که فرق بین مثلا qDebug با مثلا std::cout در چیه ! که در نهایت مشخصه فرقشون هر دو یک کار رو انجام میدن و هردو یک نتیجه رو دربر دارن فقط syntax و انحصار نویسی در کتابخانه هستش که کمی متفاوته و من فکر میکنم این برای تازه کار ها کمی گمراه کنندست... که به مرور زمان حساب کار دستتون خواهد آمد که هیچ فرقی نمیکنه.


اوکی شد.باید تنها در قسمت main.cpp کد رو وارد می کردم.تنها مشکلم همین بود و درخواست تغییر در کد رو نکرده بودم.فقط سورس پای ثابت برنامه رو نمیدونستم دقیق کدومه که بیام کد رو در داخل اون بذارم.الان سوالی که دارم اینه که ایا وجود mainwindow چه در حالت cpp و چه در حالت ui لازم و واجب هست؟؟؟

120290

وجود فایل های سورس RC مهمه که در حالت عادی از فایل های طراحی در منبع Resource.rc استفاده استفاده میکنیم و در Qt کمی پیشرفته تر در qrc ایجاد میشوند.
برای مثال هر فایل استاندارد برای پنجره ها و دیالوگ ها شامل 3 فایل مهم .h و .cpp و در نهایت فایل گرافیکی یا همان رابط کاربری که با پسوند ui مشخصه...
اینکه یکی از این فایل ها نباشه خب جای سوال نداره شما هر کدوم از اینهارو حذف کنید کلا برنامه این قسمت بهم میریزه...

در فایل .h همانطور که قبلا توضیح دادیم پیاده سازی کدهای سر کلاس ها و توابع معرفی میشه و بعد در فایل .cpp کد نویسی اجرایی هر یک از کلاس ها و توابع پیاده میشه و در فایل ui هم مشخصه تمام طرح های گرافیکی به زبان xml ایجاد میشه که همه اینها باهم در ارتباط هستند که در دو حالت Form Designer و XML Text Editor میتونید طرح رو تغییر و پیاده سازی کنید.

amir.bakhtiari
دوشنبه 16 تیر 1393, 17:53 عصر
سلام.همان طور که در اموزش ها امده است.وقتی که یک پروژه استاندارد کیوت رو قراره ایجاد کنیم از Qt Widget Application استفاده می کنیم.و زمانی که پروژه ایجاد میشه دو سورس تحت پسوند cpp به نام های mainwindow و main رو داریم.و همچنین یک هدر فایل mainwindow رو داریم و همچنین در فرم یک mainwindow.ui رو داریم.اما این کدی که شما می بینید مربوط به کتاب انگلیسی اموزشی کیوت و اولین کد شروع اون کتاب هست.
مشکلم اینه که نمیدونم چه طوری این کد رو اجرا کنم.از روند کد به خوبی اگاه هستم اما روند پیاده سازی و ایجاد پروژه اون کد برام مبهم هستش!!!!!!


مشکلم اینه که نمیدونم چه طوری این کد رو اجرا کنم

زمان زیادی از این پاسخگویی گذشته ولی...
برای اجرا این کد در محیط لینوکس:
یه فایل با فرمت c++ میسازید وکد که دارید رو داخل فایل مینویسید و در یه مسیر مشخص(داخل یه فلدر جدا باشه بهتره)
terminal رو بازکنید و به مسیر فایل برید
با این چند خط میشه کامپایلش کرد

qmake -project
qmake file.pro

و یه فایل اجرایی ایجاد میشه
تو ویندوزم که خودتون یاد گرفین

motherboard
دوشنبه 16 تیر 1393, 18:57 عصر
زمان زیادی از این پاسخگویی گذشته ولی...
برای اجرا این کد در محیط لینوکس:
یه فایل با فرمت C++‎‎‎‎ میسازید وکد که دارید رو داخل فایل مینویسید و در یه مسیر مشخص(داخل یه فلدر جدا باشه بهتره)
terminal رو بازکنید و به مسیر فایل برید
با این چند خط میشه کامپایلش کرد

qmake -project
qmake file.pro

و یه فایل اجرایی ایجاد میشه
تو ویندوزم که خودتون یاد گرفین

با تشکر از شما دوست گرامی.استفاده کردم.من اون اوایل که تازه کیوت رو نصب کرده بودم چون که قبل از اون عادت کرده بودم به محیط کنسولی شکل و شمایل این کیوت برایم عجیب و غریب بود.!!!! اما بعدا متوجه شدم که فرق خاصی رو با dev نداره با این تفاوت که کتابخانه های بسیار بهتر و بیشتری رو داره و برنامه نویسی رو اسون می کنه.اما برای کسانی که از فایل های داخل یک پروژه در کیوت سر در نمی اورند.لازم است بگم که وقتی یک فایل هدر می سازید اون هم تنها با یکی دوتا کلیک و ذکر نام هدر فایل و باز با یکی دو تا کلیک همچنین کلاسی رو تعریف می کنید و طبق قوانین سی پلاس پلاس اجزای کلاس رو می نویسید.بعد از اون یک فایلی به پسوند cpp با یک نام دلخواه درست می کنید و اعضای کلاس رو فراخوانی می کنید و دستورات رو می نویسید.کوچک ترین بخش کدنویسی همون تابع main هست که با ایجاد یک شی از کلاسی که ساخته اید اون رو توسط کلاسی به نام QMainWindow به صورت ()show در می اورید.تو pro هم هرچی سورس و یا هدر ساختید رو معرفی می کنید.این ها همه تو اموزش ها هست. و من خلاصه وار گفتم.اما همین قدر بگم که کیوت هیچ فرق خاصی رو با dev نداره!!!! با این تفاوت که ادیتور بهتری داره و کتابخانه های بهتری.من که رسما dev رو بازنشسته کردم!!! تو خود کیوت هم محیط کنسولی وجود داره.دیگه سعی کنید از کدبلاکس و یا dev و یا امثال این ها استفاده نکنید و از فریمورکی مثل کیوت استفاده کنید.