PDA

View Full Version : مثال آموزشی Stylesheet



حامد مصافی
دوشنبه 18 دی 1391, 23:56 عصر
همونطوری که می‌دونید استایل‌شیت‌ها (doc.qt.digia.com/qt/stylesheet.html) یک روش قدرتمند برای ساخت پوسته برای نرم‌افزار هاست.
یک مثال ساده ضمیمه کردم که می‌تونه در فهم بهتر این مطلب کمی کمک کنه. این استایل رو برای یکی از برنامه‌هام داشتم یک استایل‌شیت طراحی می‌کردم اما وسط کار به چون از رنگ‌بندیش خوشم نیومد کنار گذاشتمش.
برای استفاده از این استایل‌شیت اونو از یک فایل (یا ریسورس) خوانده و در یک QString بریزید سپس با متد qApp->setStyleSheet اونو برای کل پروژه ست کنید. اگر هم سوالی بود همین‌جا مطرح کنید.

aidin110
سه شنبه 19 دی 1391, 13:08 عصر
سلام
لطفا مراحل استفاده رو یه خورده بهتر توضیح میدین؟

returnx
سه شنبه 19 دی 1391, 13:31 عصر
با اجازه ی جناب مصافی...
می تونید به این صورت استفاده کنید:

//LoadStyleSheet:
QFilei_file(":Style_sheet/window_style");
i_file.open(QIODevice::ReadOnly);
QStringline;
QStringstyle;
while(!i_file.atEnd())
{
line=i_file.readLine();
style+=line;
}
i_file.close();
qApp->setStyleSheet(style);
البته ابتدا فایل مورد نظر را به فایل Resource برنامتون اظافه کنید...

aidin110
سه شنبه 19 دی 1391, 21:09 عصر
خب آخه اینطوری یه فایل چند کیلوبایتی کپی میشه تور رم !! منطقیه اول بریزیم تو QString بعد استفاده کنیم؟
یعنی راهی نیست که مستقیم از خود فایل بخونه؟

حامد مصافی
چهارشنبه 20 دی 1391, 00:31 صبح
حتی اگر مستقیماً از فایل بخونید اون فایل چند کیلو بایتی در رم خواهد موند.

QFile f(":/styles/modern"); // or other file location even on disk
f.open(QIODevice::ReadOnly | QIODevice::Text);
qApp->setStyleSheet(f.readAll());

aidin110
چهارشنبه 20 دی 1391, 12:41 عصر
ممنون
من همین کدو تو برنامه کپی میکنم کار نمیکنه!!!
فایل و آدرس ریسورس هم تنظیمه!

حامد مصافی
پنج شنبه 21 دی 1391, 13:47 عصر
یک مثال ساده از نخوه به‌کاربردن چنین استایل‌شیت‌‌هایی رو براتون آماده کردم.

aidin110
پنج شنبه 21 دی 1391, 20:27 عصر
من واقعا ازتون ممنونم ، دست شما درد نکنه ، خیلی آقایی...