View Full Version : سوال: دوستان کنترل Picture در کیوت کجاست؟
complexcoding
جمعه 14 مهر 1391, 02:27 صبح
با سلام
دوستان در این آدرس نحوه کار با picture رو یاد داده
http://harmattan-dev.nokia.com/docs/platform-api-reference/xml/daily-docs/libqt4/qpicture.html
اما همچین کنترلی من در نرم افزار کیوت ندیدم بجاش GraphicView هست که اگر کار picture رو کنه راضیم یعنی می خوام بدونم کار کردن با کدوم بهتر به کارم می یاد.
الان نرم افزار آزمایشی که می خوام بسازم تصاویر مختلف رو نمایش می ده . اینم بگم که این گرافیک ویو رو به صفحه اضافه کردم و روش راست کلیک کردم و گزینه Change Whats this رو زدم بعدش یه آیکون عکس داشت روش کلیک کردم اما از اینجاش دیگه نمی دونم چطوری عکس مورد نظرم رو بهش اضافه کنم؟ با توجه به اینکه یک فایل به نام Resource به برنامم اضافه کردم طبق آموخته های دوستام. و تصویر رو درون این فایل گذاشتم اما باز این تصویر روی این کنترل ظاهر نمی شه؟ دوستان شما چه توصیه ای دارید؟
ممنون
returnx
جمعه 14 مهر 1391, 09:22 صبح
این چیزی که من در مثال بالا دیدم ، این کلاس نقش کلاس Graphics رو در دات نت بازی میکنه یعنی این کلاس صرفا برای کار های گرافیکی و رسم اشکال هست...
در واقع این کلاس ضاهرا فقط بهتون Device Context میده برای رسم اشکال...
در واقع این کلاس اصلا برا نمایش نیست...
البته من این کلاس را تست نکردم تا ببینم دقیقا چه امکاناتی میده...
حامد مصافی
جمعه 14 مهر 1391, 09:29 صبح
کلاس QPicture چیزی نیست که شما در toolbox اونو ببینید. در واقع چیزی مثل QImage یا QPixmap هست با کمی تفاوت. نوشته زیر عیناً از مستندات کیوت کپی شده این موضوع رو به خوبی توضیح میده.
Qt provides four classes for handling image data: QImage, QPixmap, QBitmap and QPicture. QImage is designed and optimized for I/O, and for direct pixel access and manipulation, while QPixmap is designed and optimized for showing images on screen. QBitmap is only a convenience class that inherits QPixmap, ensuring a depth of 1. The isQBitmap() function returns true if a QPixmap object is really a bitmap, otherwise returns false. Finally, the QPicture class is a paint device that records and replays QPainter commands.
complexcoding
جمعه 14 مهر 1391, 11:36 صبح
خوب الان از چه کنترلی برای نمایش تصویر استفاده کنم؟
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsScene scene;
QGraphicsView view(&scene);
QGraphicsPixmapItem item(QPixmap("c:\\test.png"));
scene.addItem(&item);
view.show();
return a.exec();
}
همین کار رو می خوام بصری انجام بدم؟
rubiks.kde
جمعه 14 مهر 1391, 12:36 عصر
هم میتونی از یه شی Graphics View و هم میتونی از یه Lable استفاده کنی
complexcoding
جمعه 14 مهر 1391, 12:48 عصر
93592
اینجاشو نمی دونم چطوری تصویر رو اضافه کنم؟
rubiks.kde
جمعه 14 مهر 1391, 12:55 عصر
93592
اینجاشو نمی دونم چطوری تصویر رو اضافه کنم؟
شما باید یه فایل resource داشته باشی و اول تصاویر رو به داخل resource اضافه کنی بعد که وارد این قسمت که عکسش رو گذاشتی بشی می بینی که عکست هست و از اون استفاده می کنی مثل عکس زیر
93593
complexcoding
جمعه 14 مهر 1391, 13:12 عصر
ولی من فایل resource رو از قبل ساختم و دو تا عکس توش گذاشتم؟
93594
ولی باز اون قسمتی که شما گفتی هیچ عکسی رو نشون نمی ده؟
rubiks.kde
جمعه 14 مهر 1391, 13:25 عصر
ولی من فایل resource رو از قبل ساختم و دو تا عکس توش گذاشتم؟
93594
ولی باز اون قسمتی که شما گفتی هیچ عکسی رو نشون نمی ده؟
موقع که میخوایی عکس رو انتخاب کنی قبلش روی resource root کلیک کن تا انتخاب شه مثل عکس زیر
93596
اگه بازم عکسی نبود QtCreator رو ببند و دوباره باز کن گاهی وقتا مشکل از اونه
complexcoding
جمعه 14 مهر 1391, 13:32 عصر
Qt رو باز و بسته کردم درست شد اما هنگام Run کردن عکسی داخلش نمی یاد شما تونستی گربه رو هنگام Run ظاهر کنی؟
یک لیبل هم به فرم اضافه کردم و با استفاده از خواص Pixmap بهش یه عکس دادم که تو فرم اومد ولی وقتی اجرا کردم برنامه رو دیده نمی شه؟
rubiks.kde
جمعه 14 مهر 1391, 13:39 عصر
الان دوباره امتحان کردم هیچ مشکلی نداره میشه پروژه رو بدی ؟؟
complexcoding
جمعه 14 مهر 1391, 13:47 عصر
آپلود کردم : اینم لینکش
http://www.4shared.com/zip/FNncNbX4/Image_management.html
ممنون
rubiks.kde
جمعه 14 مهر 1391, 14:23 عصر
الان دیدم مشکل حل شد نمی دونم شاید عکس رو از resource انتخاب نمی کردی . ولی سعی کن عکسی که برای label انتخاب می کنی از توی resource باشه (مثلا عکس توی درایو c است و هم داخل resource حالا واسه label از اونی که توی درایو c است استفاده کنی باید از resource استفاده کنی
اینم کدت
complexcoding
جمعه 14 مهر 1391, 14:43 عصر
الان که این پروژه رو تو هم داری خیلی خوب شد.همونجا تست می کنی
مثلا عکسه تو GraphicsView موقع احرا نمی یاد؟ درسته؟
الان من رفتم طبق گفته های شما لیبل رو پاک کردم و یک لیبل جدید گذاشتم و تصویر رو دوباره از Pixmap گذاشتم درست شد:لبخندساده:
اما باز ما تو سی شارپ هیچوقت از لیبل استفاده نمی کردیم برای نمایش تصویر ... نمی دونم شاید تو کیوت لیبل طوری ساخته شده تا بتونه کار Picturebox رو انجام بده اما بازم Graphicsview وسوسه کننده هست واسه استفاده البته اگر بازی در نیاره و یه عکس سالم نشون بده :لبخند:
چرا نشون نمی ده؟ امتحان کردی؟
rubiks.kde
جمعه 14 مهر 1391, 14:58 عصر
الان که این پروژه رو تو هم داری خیلی خوب شد.همونجا تست می کنی
مثلا عکسه تو GraphicsView موقع احرا نمی یاد؟ درسته؟
الان من رفتم طبق گفته های شما لیبل رو پاک کردم و یک لیبل جدید گذاشتم و تصویر رو دوباره از Pixmap گذاشتم درست شد:لبخندساده:
اما باز ما تو سی شارپ هیچوقت از لیبل استفاده نمی کردیم برای نمایش تصویر ... نمی دونم شاید تو کیوت لیبل طوری ساخته شده تا بتونه کار Picturebox رو انجام بده اما بازم Graphicsview وسوسه کننده هست واسه استفاده البته اگر بازی در نیاره و یه عکس سالم نشون بده :لبخند:
چرا نشون نمی ده؟ امتحان کردی؟
درسته چون تو نه عکسی به اون اضافه کردی نه چیزی پس می خوایی چیرو نشون بده
complexcoding
جمعه 14 مهر 1391, 15:03 عصر
خدایی اضافه کردم نمی دونم شاید باز هم مسیر رو اشتباه رفتم؟ الان تو اضافه نکرده بودی مگه؟ چرا پس برای تو نشون نمی داد؟
rubiks.kde
جمعه 14 مهر 1391, 19:45 عصر
توی کد قبلی که برات گذاشتم نه این کار رو نکردم ولی الان چند خط کد اضافه کردم شما هم این کد ها رو توی window.cpp بعد از تابع ui->setupUi(this); بزن
QGraphicsScene*scn=newQGraphicsScene(ui->graphicsView);
ui->graphicsView->setScene(scn);
QPixmap pix(":/index.jpeg");
scn->addPixmap(pix);
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.