انتقال Chromium Embedded Framework به Qt
-
سلام
برای یک پروژه می خواستم کرومیوم رو از win 32 به کیوت منتقل کنم . Chromium Embedded Framework به نظر من سرعت بالاتری نسبت به نسخه فعلی QtWebKit داره و از طرفی برای فونتهای عربی در حالتی که زوم میکنیم به مشکلی هم بر نمی خوره ( من در زوم کردن فونت عربی traditional arabic مشکلات زیادی با QtWebKit داشتم از جمله اونها فاصله ها و نیم فاصله ها در جای نامناسبی قرار می گرفتن . اگر دوستان برای این مشکل هم راه حلی داشتن بفرماییند ممنونم میشم) . الان کرومیوم رو توسط QtWinHost پیاده کردم و کرومیم هم کار می کنه ولی وقتی قاب پنجره رو با کمک WS_EX_LAYERED تغییر میدم و یک تصویر png می اندازم دیگه کرومیم کشیده نمیشه و پنجره در همان ناحیه شفاف می شود . کسی از دوستان اطلاعی از این مشکل و راه حلش داره و آیا امکانش هست من Draw کرومیم رو روی پنجره layered شده بندازم؟ -
p{direction: rtl; text-align: right}. یا خدا! که چی آخه؟ خوب از همون chromium استفاده کن.
بحث webkit توی کیوت فرق میکنه. webkit برای اینه که بتونی کد c++ رو با اینترفیس وب ترکیب کنی و این کار رو با qtwebkit bridge انجام میده. حالا شما که از chromium فقط برای نمایش میخوای استفاده کنی به نظرت کاره منطقی داری انجام میدی؟p{direction: rtl; text-align:right}. در مورد سرعت webkit شاید بخاطر این باشه که داری تو حالت debug کامپایل میکنی. رو حالت release امتحان کردی؟
-
محسن جان ممنون از پاسختون
کاری که من انجام میدم فراتر از یک نمایش یا رندر ساده متن است و html5 و css3 رو به طور کامل نیاز دارم
من الان کرومیم رو کامل منتقل کردم و وقتی از فریم های معمولی استفاده می کنم هیچ مشکلی ندارم وقتی که از فلگ WS_EX_LAYERED برای تغیر شکل پنجره استفاده می کنم دیگه کرومیم رندر نمیشه .بله از Release هم برای QtWebKit استفاده کردم ولی سرعتش قابل مقایسه با کرومیوم نیست چون کرومیوم از موتور V8 استفاده می کنه و مهمتر مالتی پروسس هم هست یعنی برای هر فرایندی یک پروسس استفاده می کنه . البته چیزی که من ازدوستان در مورد WebKitشنیدم اینکه از نسخه دو به بعد که قرار هست تو Qt5 بیاد همین امکانات رو خواهد داشت البته امیدوارم .
@
SetWindowLong(winId(),
GWL_EXSTYLE,
GetWindowLong(winId(), GWL_EXSTYLE) | WS_EX_LAYERED);
@ -
p{direction: rtl; text-align:right}. نسخه webkit که الان کیوت 4.8.2 ساپورت میکنه 2.2.2 هست. متاسفانه بخش html5 قدیمی هست و فانکشن های جدید رو نداره. برای کیوت 5 از آخرین نسخه webkit استفاده کردن که هم موتور جاوا اسکریپتش V8 هست هم html5 ساپورت میکنه ولی در حال حاضر وب کیتش فقط روی لینوکس کامپایل میشه و تا ریلیز اولین نسخه stable هنوز 2 یا 3 ماه مونده. پس اگر فکر میکنی که بهش نیاز داری و پروژه ات تا تکمیل حد اقل 3 4 ماه زمان لازم داره برو رو لینوکس و Qt5
رو پروژه ات کار کن تا سمت ویندوزش هم درست شه.
من اصلا این روشی که الان داری استفاده میکنی رو نمیپسندم و نظری در موردش ندارم.[quote author="hdeldar" date="1345034805"]برای سوالتون هم من از RLE یا right to left embedding کد استفاده می کنم که فکر کنم کد هگزش 202b باشه
[/quote]p{direction:rtl; text-align:right}. مرسی. یعنی keyboard layout رو تغییر دادی به این حالت یا داری از markup استفاده میکنی؟
-
ممنون
ولی سوای اینکه کنترل ما وب کیت باشه یا کرومیم تصور کنید یک کنترلی رو با win 32 در مدت زیادی ساختین و نیاز دارد در کد های کیوت هم ازش مثل یک ویجت استفاده کنید این کار باهمون کلاس QWinHost بسادگی امکان پذیره و هیچ مشکلی هم نیست . از طرفی هم شما یک پنجره با شکل و شفافیت و یا تصویر دلخواه تو ویندوز می خواهید اون هم با کمک استایلی که بالا گفتمش امکان پذیره و مشکلی هم نداره ولی وقتی این دو کار رو باهم در یک پروژه انجام میشه مشکلی که گفتم پیش میاد . تو فرم های انگلیسی این سایت هم پرسیدم . فعلا خبری نیست مثل اینکه .
اگر راه حلی پیدا نکنم مجبورم برم لینوکس.
برای سوال اخیر هم بله از markup استفاده میکنم . توی run ویندوز از منوی راست کلیک insert unicode control character و بعد RLE انتخاب می کنم و سپس تو ادیت باکس run که هیچی دیده نمیشه select all رو میزنم و کپی می کنم و در آخر اول هر خط یا پاراگراف از متن پستم paste انجام میدم راه راحترش رو توی یک پست دیگه در همین مورد نوشتم . -
[quote author="hdeldar" date="1345060241"]ممنون
ولی سوای اینکه کنترل ما وب کیت باشه یا کرومیم تصور کنید یک کنترلی رو با win 32 در مدت زیادی ساختین و نیاز دارد در کد های کیوت هم ازش مثل یک ویجت استفاده کنید این کار باهمون کلاس QWinHost بسادگی امکان پذیره و هیچ مشکلی هم نیست . از طرفی هم شما یک پنجره با شکل و شفافیت و یا تصویر دلخواه تو ویندوز می خواهید اون هم با کمک استایلی که بالا گفتمش امکان پذیره و مشکلی هم نداره ولی وقتی این دو کار رو باهم در یک پروژه انجام میشه مشکلی که گفتم پیش میاد . تو فرم های انگلیسی این سایت هم پرسیدم . فعلا خبری نیست مثل اینکه .
اگر راه حلی پیدا نکنم مجبورم برم لینوکس.
[/quote]
ولی کنترلی نداری روش یعنی نمیتونی به آبجکت هاش دسترسی داشته باشی و یا به کد c++ وصل کنی مگر اینکه از interprocess communication استفاده کنی که شامل حال حرکت فعلی تو نمیشه.[quote author="hdeldar" date="1345060241"]برای سوال اخیر هم بله از markup استفاده میکنم . توی run ویندوز از منوی راست کلیک insert unicode control character و بعد RLE انتخاب می کنم و سپس تو ادیت باکس run که هیچی دیده نمیشه select all رو میزنم و کپی می کنم و در آخر اول هر خط یا پاراگراف از متن پستم paste انجام میدم راه راحترش رو توی یک پست دیگه در همین مورد نوشتم .
[/quote]خیلی هم خوب. ممنون