[SOLVED] فرم کریستالی ... !
-
p{direction:rtl; text-align:right}. سلام
منظورتون اینکه می خواهید فرمتون بشکل دلخواه باشه ؟ یا شفاف باشه ؟
خوب خیلی ساده است . اول paint ويدجت رو خودتون باید دست بگیرید و یک تصویر با هر شکل دلخواه که البته باید سطح الفا هم داشته باشه رو روی ویجت بکشید . بعد تو کانستراکت ویجت هم کافیته مقدار Qt::WA_TranslucentBackground و Qt::FramelessWindowHint رو setAttribute كنيد.برای تب هم خیلی ساده با stylesheet مي تونيى به همين شكل در بارید. -
[quote author="hdeldar" date="1357410531"]p{direction:rtl; text-align:right}. سلام
منظورتون اینکه می خواهید فرمتون بشکل دلخواه باشه ؟ یا شفاف باشه ؟
خوب خیلی ساده است . اول paint ويدجت رو خودتون باید دست بگیرید و یک تصویر با هر شکل دلخواه که البته باید سطح الفا هم داشته باشه رو روی ویجت بکشید . بعد تو کانستراکت ویجت هم کافیته مقدار Qt::WA_TranslucentBackground و Qt::FramelessWindowHint رو setAttribute كنيد.برای تب هم خیلی ساده با stylesheet مي تونيى به همين شكل در بارید.[/quote]p{direction:rtl; text-align:right}. روش درستی نیست.
[quote author="Abbas Naghdi" date="1357409494"]
[quote author="soroush" date="1357408994"]p{direction:rtl; text-align:right}. چرا با سیشارپ برنامهتو نمینویسی؟[/quote]p{direction:rtl; text-align:right}. سروش جان من دارم با کیوت برنامه مینویسم حالا برم با c# بنویس
c# رو یاد گرفتم برا پول در آوردن و کیوت رو برا کار های بزرگ و ... (بهم انرژی میده (مثل دارو های نیرو زا)) این برنامه ای که میخام بنویسم بزرگه ... میدونی که ... ! [/quote]p{direction:rtl; text-align:right}. Qt یک فریمورک چندسکویی است. یک کد مینویسی توی ۱۰ تا سیستمعامل اجرا میکنی. الان انتظار داری برای API ویندوز یک API اضافی هم بدن برات؟ یک لایهٔ کاملاً اضافی و سربار که فقط کدنویسیتو راحتتر میکنه؟
-
p{direction:rtl; text-align:right}. چند تا برنامه برای ویندوز و لینوکس به این روشی که گفتم نوشتم و اشکال اجرایی تا حالا گزارش نشده .سرعتش هم بد نیست ولی تو ریسایز تو ویندوز یک تریکی زدم و سرعت رو بردم بالا. اما اگر این روش اشکال اساسیی ممکنه داشته باشه بهم بگید خیلی خوشحال میشم
-
[quote author="hdeldar" date="1357411163"]p{direction:rtl; text-align:right}. چند تا برنامه برای ویندوز و لینوکس به این روشی که گفتم نوشتم و اشکال اجرایی تا حالا گزارش نشده .سرعتش هم بد نیست ولی تو ریسایز تو ویندوز یک تریکی زدم و سرعت رو بردم بالا. اما اگر این روش اشکال اساسیی ممکنه داشته باشه بهم بگید خیلی خوشحال میشم [/quote]
p{direction:rtl; text-align:right}. چیزی رو که وجود داره با یه چیز جدید داری جایگزین میکنی. توی ویندوز سیستم Window management ،هست. و باهاش میشه هر بلایی سر پنجرهها و ضاهر برنامهها دراورد. میشه شکل دکمههای کنترلی رو عوض کرد نوار عنوان پنجرهها رو رنگارنگ کرد و از این جینگولک کاریها. حالا با استفاده از همون API داری titlebar رو حدف میکنی که خودت دوباره نقاشیش کنی.
-
[quote author="hdeldar" date="1357410531"]p{direction:rtl; text-align:right}. سلام
منظورتون اینکه می خواهید فرمتون بشکل دلخواه باشه ؟ یا شفاف باشه ؟
خوب خیلی ساده است . اول paint ويدجت رو خودتون باید دست بگیرید و یک تصویر با هر شکل دلخواه که البته باید سطح الفا هم داشته باشه رو روی ویجت بکشید . بعد تو کانستراکت ویجت هم کافیته مقدار Qt::WA_TranslucentBackground و Qt::FramelessWindowHint رو setAttribute كنيد.برای تب هم خیلی ساده با stylesheet مي تونيى به همين شكل در بارید.[/quote]p{direction:rtl; text-align:right}. یکم توضیح بیشتر میدی ... ؟
-
p{direction:rtl; text-align:right}. من کرسیتالی رو برای ویندوز میخام ... آخه لینوکس کریستالی واسه چیشه ... !
من میخام یه دکمه داخل بخش کریستالی بزارم
اگه میشه چطوری ... ؟
اگه نمیشه که بازم چطوری title رو حذف کنم و دوباره خودم بسازم و ... -
p{direction:rtl;text-align:right}. جالبه اتفاقا چند روز پیش این مطلب رو داشتم مطالعه میکردم و بوکمارکش کردم.
http://blog.qt.digia.com/blog/2009/09/15/using-blur-behind-on-windowsp{direction:rtl;text-align:right}. سورس
http://chaos.troll.no/~jbache/blurbehind.zip -
p{direction:rtl; text-align:right}. یک برنامه خیلی ساده پایین نوشتم که تو سازنده ویجتتون کافیه دو خط کد و یک لود تصویر رو انجام بدید :
@
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
QWidget::setWindowFlags( Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground, true);
bgPixmap.load("../background.png");
}
@p{direction:rtl; text-align:right}. توی تابع paintEvent هم که یک تابع virtual هست هم كافيه اون تصویر رو روی ویجتت بکشی
@
void Widget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.drawPixmap(0,0,bgPixmap);
}
@p{direction:rtl; text-align:right}. برای تغییر شکل برنامه خودمون منطقی نیست کل ویندوز رو بهم بریزیم.
-
p{direction:rtl; text-align:right}. مرسی بچه ها چیزی که میخاستم شد