رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران
کامبیز اسدزاده

افزوده شدن ویژگی تغییر فونت به دلخواه شما

پست های پیشنهاد شده

سلام و درود بر کاربران عزیز مرجع،

جهت راحتی و مشاهده‌ی محتوای مرجع بر اساس سلیقه‌ی شما کاربران عزیز افزونه‌‌ی تغییر فونت با بسته‌های ویژه‌ی فونت فارسی بر روی وب‌سایت اعمال شد. 🙂 برای استفاده از آن می‌توانید بر روی گزینه‌ی A در عنوان صفحه کلیک و فونت مورد نظر خود را انتخاب نمایید.

  • پسندیدن 1
  • تشکر شده 2

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 15 ساعت قبل، کامبیز اسدزاده گفته است :

سلام و درود بر کاربران عزیز مرجع،

جهت راحتی و مشاهده‌ی محتوای مرجع بر اساس سلیقه‌ی شما کاربران عزیز افزونه‌‌ی تغییر فونت با بسته‌های ویژه‌ی فونت فارسی بر روی وب‌سایت اعمال شد. 🙂 برای استفاده از آن می‌توانید بر روی گزینه‌ی A در عنوان صفحه کلیک و فونت مورد نظر خود را انتخاب نمایید.

آقا خیلی خوب شده ! سپاس از زحمات شما

  • تشکر شده 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

  • مطالب مشابه

    • توسط کامبیز اسدزاده
      آیا این واقعاً امکان‌پذیر است؟
      پاسخ :  بله!
      من می‌دانم که ممکن است این مبحث تحت سی++ بسیار پیچیده و یک کار بیهوده‌ای باشد! اما واقعیت این است که تکنیک‌های پنهان بسیاری وجود دارد که ممکن است همه از آن باخبر نباشند!
      من قبلاً در مورد اینکه تحت ++C وب‌سایت میشه طراحی کرد یا خیر تحقیقاتی انجام داده بودم، از لحاظ امکان بودنش جواب مثبت بود اما اینکه به راحتی طراحی تحت Php یا دیگر زبان‌های برنامه‌نویسی باشه خیر! خُب طبیعیه چون شما بسیار راحت یه اسکریپت رو می‌نویسی و روی سرور اجراش می‌کنی و سایت شما به خوبی و خوشی بالا میاد!
      ممکن است در همین قسمت از موضوع شما به این نتیجه رسیده باشید که خُب نیازی به ادامه‌ی بحث نداریم! وقتی کار سختیه پس منطقی نیست و شما احتمالاً دیوانه‌ای!!! 😁
      واقعیت جریان این است بر خلاف آن چیزی که تصور کرده‌ایم طراحی وب‌سایت با سی‌پلاس‌پلاس نه تنها بسیار راحت است بلکه بسیار هم جذاب خواهد بود! اما در نگاه اول ممکن است یک سری محدودیت‌هارا داشته باشد که همه‌ی این موارد با کمی تعمل و بررسی قابل حل هستند به قدری که وقتی درگیر این جریان باشید شیفته‌ی آن خواهید شد.
       
      مزایای یک وب‌سایت تحت سی‌پلاس‌پلاس نسبت به دیگر زبان‌های رایج
      سرعت خارق‌العاده و غیر قابل مقایسه با زبان‌های رایج امنیت بهتر کد‌های شما مدیریت ساده‌تر و انعطاف‌پذیری بالا مصرف بسیار بهینه‌ و غیر قابل تصور از منابع سرور دسترسی نامحدود به کتابخانه‌ها عدم محدودیت در دسترسی به برنامه‌نویسی سطح پایین عدم محدودیت در استفاده از توابع سیستم‌عامل عدم محدودیت در مدیریت سیستم و هر ویژگی‌ دیگری که در زبان‌های اسکریپتی اگر به آن نیاز داشته باشید مجبور هستید تا به صورت اکستنشن آن را تحت سی‌پلاس‌پلاس باز نویسی کنید. سیستم راه‌انداز وب‌سرور چگونه است؟
      در هر سروری CGI به شما امکان این را می‌دهد که بتوانید تحت پروتکل‌های استاندارد برنامه‌های تحت وب را اجرا کنید. شما می‌توانید تحت آن و یا موارد دیگری مانند FatCGI و WSGI و دیگر موارد بهینه شده‌ی آن برنامه‌ی تحت وب را بر روی سرور خود اجرا کنید.
       
      طراحی قالب هماهنگی با HTML, JavaScript, Css در سی‌پلاس‌پلاس چگونه خواهد بود؟
      همه‌ی گزینه‌های مربوط به وب را شما بدون هیچ محدودیتی در اختیار خواهید داشت. شما هیچ محدودیتی در استفاده از ویژگی‌های HTML5 یا CSS3 و یا JavaScript و دیگر فریمورک‌ها و کتابخانه‌های کارآمدی چون Angular.JS را نخواهید داشت. بنابراین از نظر طراحی رابط یک وب‌سایت همانند دیگر زبان‌های رایج می‌توانید روی آن حساب کنید.
       
      طراحی هسته و بک‌اِند وب‌سایت چگونه خواهد بود؟
      همانند زبان‌ها و فریمورک‌های رایج تحت وب شما در سی‌پلاس‌پلاس می‌توانید هسته‌ی وب‌سایت یا سیستم وب‌سایت خود را تحت استاندارد سی‌پلاس‌پلاس و هر کتابخانه‌ای که می‌پسندید و یا به آن تسلط دارید پیاده سازی کنید! به شرطی که قابلیت‌های آن کتابخانه پاسخگوی نیاز‌های شما باشد.
      با این حساب شما می‌توانید حتی سیستم مدیریت محتوای (CMS) خود را طراحی کنید! 😧
      بله سیستم مدیریت محتوا تحت سی‌پلاس‌پلاس! کاملاً جدی هستیم 🙂
      قبل از هر چیز یک مزیت بسیار بزرگ در کنار مزیت‌های دیگر این است که یک CMS تحت سی‌پلاس‌پلاس می‌تواند داشته باشد مصرف بهینه از منابع سرور خواهد بود. برای مثال در یک مقایسه‌ی‌ ساده و آزمایشی نتیجه‌ی بسیار جالبی ارائه شده است.
      همانطور که می‌دانید Wordpress به عنوان یک سیستم مدیریت محتوای (بلاگ) شناخته شده و تحت Php توسعه‌ یافته است. نسخه‌ی سریعتر و بهینه‌تر آن با نام Ghost تحت Node.JS توسعه یافته است که ما نسخه‌ی توسعه‌ یافته‌ی آن را با یک عمل مشابه در C++1z مورد بررسی قرار داده ایم که نتایج آن بسیار جالب است!
      مصرف حافظه‌
      سیستم مدیریت محتوای Jaguar ۳۵۰۰ درخواست در هر ثانیه 3.6 مگابایت سیستم مدیریت محتوای Ghost 100 درخواست در ثانیه 120 مگابایت پشتیبانی از پایگاه‌های داده
      به لطف کتابخانه‌های عظیم سی‌پلاس‌پلاس امکان مدیریت یک وب‌سایت تحت پایگاه‌های داده مختلفی ممکن است. برای مثال تحت Qt شما می‌توانید به رایجترین درایور‌های بانک‌اطلاعاتی دسترسی داشته و سیستم خود را به آن‌ها مجهز کنید.
      نکته: احتمالاً در برنامه‌نویسی با نود جی‌اس و پی‌اچ‌پی شناختی با کتابخانه‌های OpenSSL, Libcurl و موارد این چنینی داشته اید! کتابخانه‌های فوق عضو لیست کتابخانه‌های C و  ++C هستند. بنابراین شما علاوه بر دسترسی مستقیم بر آن‌ها به هزاران و شاید میلیون‌ها کتابخانه در دنیا سی‌پلاس‌پلاس خواهید داشت.
       
      نمونه‌ی اولیه اما شوق‌آور برای اثبات امکان طراحی وب‌سایت تحت سی‌پلاس‌پلاس
      چندی پیش من تصمیم گرفتم تا سیستم وب‌سایتی را تحت Php7 برای یکی از استارت‌آپ‌ها طراحی و پیاده سازی کنم که در این پست به آن اشاره شده است. از آن‌جایی که به لطف کتابخانه‌ی Qt برنامه‌های سمت کاربر را توسط سی‌پلاس‌پلاس پیاده سازی کرده بودم به این فکر افتادم چرا سمت سرور و بخش وب‌سایت هم با آن هماهنگ نشود!؟
      اینگونه هماهنگی بین برنامه‌ها و پرفرمنس همه‌ی آن‌ها بسیار افزایش خواهد یافت در اولین نگاه این تفکر بسیار ناشیانه و بسیار ناممکن بود! تنها روشی که به کار گرفته بودم ارسال اطلاعات از طرف کاربر به سمت سرور و مدیریت آن‌ها تحت معماری Restful Api بود که در قالب JSon آن‌ها را تجزیه و مدیریت می‌کردم. با کمی تحقیق در مورد ویژگی‌های سمت وب  تحت Fast-CGI, uWSGI, DJango, ClearSilver و موارد مرتبط با آن‌ها سعی کردم تا صفحه‌ی بسیار ساده‌ای از HTML را توسط سی‌پلاس‌پلاس هندل کنم. این کار نتایج بسیار موفقیت آمیزی را در بر داشت تا نتیجه‌ی آن تبدیل به یک پروژه‌ی سیستم مدیریت محتوا تحت ++C شد.
      من پروژه‌ای با نام مفهومی Jaguar که نام پروژه‌ی قبلی تحت Php بود را در محیط Qt Creator با C++17 و کتابخانه‌ی Qt باز سازی کرده و هسته‌ی اولیه‌ی آن را برای اجرای چند صفحه از یک وب‌سایت، احراز حویت، بازخوانی و نمایش لیستی از خبر‌ها و مدیریت متا تگ‌ها و آدرس صفحات مربوط به هر صفحه را ایجاد کردم.
      سعی کرده ام در کمترین زمان ممکن برای آزمایش یک سری ویژگی‌های اولیه از یک وب‌سایت آن‌ها را مورد بررسی قرار بدم که عبارتند از هماهنگی با فریم‌ورک‌های طراحی مانند BootStrap و یا Angular.JS که خوشبختانه همه‌چیز بسیار خوب در کنار همدیگه کار می‌کنند. هسته‌ی سیستم به صورت جدا و معماری طراحی آن بر پایه‌ی MVC مورد آزمایش قرار گرفته است.
      در زیر تصاویری از صفحات تولید شده تحت سیستم‌ مدیریت محتوای ساخته شده با سی‌پلاس‌پلاس را مشاهده می‌کنید. 😉







      همه چیز در قدم‌های اول قرار دارد و با توجه به سادگی تولید وب سایت بر خلاف تصوری که داشتیم بسیار توسعه و جای پیشرفت خواهد داشت. بخشی از نمونه کد‌های این سیستم به صورت زیر آورده شده است تا ذهنیتی برای توسعه‌دهندگان ارائه شود:
      تکه کُد زیر عمل ارسال اطلاعات و تمامی لینک‌های مربوط به بوت استرپ را برای سمت HTML ارائه می‌کند که در قالب استاندارد جدید C++17 آورده شده است:
      auto bootstrapCss = bootStrapLib.find("css"); if(bootstrapCss != bootStrapLib.end()) { c->setStash("BootstrapCss", bootstrapCss->second.c_str()); std::cout << "Found " << bootstrapCss->first << " " << bootstrapCss->second << '\n'; } کد مربوط به سمت قالب به صورت زیر خواهد بود:
      <!-- Bootstrap core css --> <link href="{{BootstrapCss}}" rel="stylesheet"> نتیجه‌ی فوق در صورتی که CDN بر روی لوکال تنظیم شده باشد از روی کد‌های کامپایل شده و یا استاتیک فراخوانی خواهد شد. در غیر اینصورت از روی یکی از سرور‌های CDN فراخوانی می‌شوند.
      نحوه‌ی ارسال متغیر از سمت سی‌پلاس‌پلاس به قالب بسیار ساده است! بسیار ساده از Php و یا Node.JS می‌باشد. با در نظر گرفتن ارسال اطلاعات از سمت سی‌پلاس‌پلاس به سمت رابط کاربری کافی است نام متغیر‌ها را در قالب خود اعمال کنید.
      {% for post in news %} <div class="blog-post"> <h2 class="blog-post-title"><a href="news/{{post.uri}}">{{post.title}}</a></h2> <p class="blog-post-meta">{{post.date}} by <a href="#">{{post.author}}</a></p> <p>{{post.announcement|safe}}</p> </div><!-- /.blog-post --> {% endfor %}</div> این ساختار بر پایه‌ی ساختار Angular.JS و DJango پیاده سازی شده است که به طور کامل پشتیبانی می‌شود.
      فعال سازی فناوری Angular.JS بر روی این سیستم جهت طراحی قالب تنها با دو دستور ساده اعمال می‌شود:
      <!-- Link to AngularJS --> <script src= "{{AngularJs}}"></script> <!-- Enable AngularJS Engine --> {{AngularJsSync|safe}} این دستورات در هسته‌ی سیستم مدیریت محتوا در کلاسی با نام Template پردازش و در نهایت به سمت HTML هندل می‌شوند.
      بخشی از دستورات سمت هسته در سی‌پلاس‌پلاس ۱۷ برای مثال ارسال عنوان صفحه به صورت زیر است:
      std::optional<std::string> LoadListTemplate::getTitle() const { if (isset(title)) { return title; } else { return std::nullopt; } } سمت HTML کافی است دستور فوق را در نظر بگیریم:
      <title>{{title}}</title> این‌ها مثال‌هایی از مراحل توسعه‌ی این سیستم است که می‌دانم آنچنان گسترده نیست، اما برای ثابت کردن طراحی و توسعه‌ی وب‌سایت تحت سی‌پلاس‌پلاس مثال‌های روشنی هستند.
       
      موفق و سربلند باشید!
      اطلاعیه‌های مربوط به این پروژه احتمالاً در کانال‌ها و گروه‌ تلگرامی و همین مرجع بازگو و در اختیار شما قرار بگیره.
    • توسط کامبیز اسدزاده
      نسخه پنجم Font Awesome سازگار با نسخه چهارم در مرجع آی‌ او‌ استریم منتشر شد. این نسخه رایگان ۱,۱۰۹ آیکون و در نسخه pro شامل ۱,۸۷۷ آیکون جدید به نسخه رایگان اضافه شده است که در بیش از ۴۶ دسته قرار دارند. همچنین SVG های جدیدی به همراه Javascript وجود دارند که استفاده از آنها کاملا بدون مشکل انجام می شود. تا بحال بیش از ۱۰۰ میلیون وب سایت از Font Awesome در طراحی صفحات شان استفاده کرده اند.
      ویژگی های نسخه Pro:
      همه چیز در Font Awesome 5 بسیار جذاب است. نسخه رایگان ۱,۱۰۹ آیکون و در نسخه pro شامل ۱,۸۷۷ آیکون را دارا میباشد. دارای سه  نوع استایل آیکون — Solid, Regular, & Light دسترسی سریع و آسان انتخاب آیکون ۱،۱۰۹ آیکون رایگان از ابتدا طراحی شده است. به راحتی به عنوان فونت آیکون یا svg,js جدید استفاده کنید. به راحتی به عنوان فونت آیکون برای فناوری‌های مدرن Qt Quick و QML استفاده کنید. بازنویسی پشتیبانی از یک ظاهر طراحی شده با CSS و… *نسخه‌ی بارگذاری شده شامل نسخه‌های دسکتاپ، موبایل و وب می‌باشد.
    • توسط کامبیز اسدزاده
      فایل Font Awesome یک پروژه رایگان است و می‌توان در هر نوع وب سایت و نرم‌افزاری از آن استفاده نمود. جهت استفاده از این فونت-آیکون کافی است فایل حاوی فونت و استایل آن را دریافت نموده و به وب سایت، پروژه‌های موبایل و دسکتاپ خود الحاق نمایید.
    • توسط کامبیز اسدزاده
      در کتابخانه‌ی SFML فونت‌ها می‌توانند از طریق فایل، حافظه و یا جریان ورودی مشخصی بارگذاری شوند و توسط رایج‌ترین فونت‌ها پشتیبانی می‌شوند. جهت اعلان یک فونت جدید در این کتابخانه کافی است کُد زیر را در نظر داشته باشید:
      sf::Font font; در ادامه برای بارگذاری یک فونت به صورت زیر عمل می‌کنیم:
      font.loadFromFile("arial.ttf"); در قالب یک دستور شرطی:
      // Load it from a file if (!font.loadFromFile("arial.ttf")) { // error... } برای استفاده از فونت و قالب‌های سفارشی نیاز است تا از کلاس sf::Text نمونه گیری شود، بنابراین در ادامه مثال زیر نشان می‌دهد که نمونه‌ای از کلاس Text ایجاد و با فونت مربوطه ترکیب شده است.
      sf::Text MyText; کلاس sf::Text دارای توابع عضوی مانند setFont، setCharacterSize، setStyle و موارد مشابه دیگری می‌باشد که در تولید ظاهر سفارشی بر روی یک متن اعمال می‌شوند. در ادامه  مثال فوق نمونه‌ای از نحوه‌ی ترکیب این کلاس می‌باشد.
      sf::Text MyText; MyText.setFont(font); MyText.setString("Hello, My name is Kambiz :)"); MyText.setCharacterSize(14); MyText.setStyle(sf::Text::Regular); MyText.setColor(sf::Color::White); توجه داشته باشید که برای رسم محتوای مورد نظر باید توسط متُد draw آن را به کلاس RenderWindow ارسال کنید. برای این کار کافی است از تابع draw استفاده شود به صورت زیر:
      window.draw(MyText); کد نهایی این مثال به صورت زیر است:
      #include <SFML/Window.hpp> #include <SFML/Graphics.hpp> #include <iostream> int main() { sf::RenderWindow window(sf::VideoMode(640, 480), "Hello world!"); while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)) window.close(); } sf::Font font; font.loadFromFile("arial.ttf"); // Create a text sf::Text MyText; MyText.setFont(font); MyText.setString("Hello, My name is Kambiz :)"); MyText.setCharacterSize(14); MyText.setStyle(sf::Text::Regular); MyText.setColor(sf::Color::White); window.clear(sf::Color::Black); window.draw(MyText); window.display(); } return 0; } برنامه را کامپایل و اجرا کنید، پیغام شما در سطر اول پنجره‌ی تولید شده نمایش داده خواهد شد.

    • توسط کامبیز اسدزاده
      معمولاً برای استفاده از آیکون‌ها در برنامه از تصاویر با فرمت‌های png, svg, gif استقبال می‌شود، اما بعضاً نیاز است نسبت به دستگاه‌ها و صفحه‌های نمایشی با کیفیت بسیار بالا تصاویر با تعداد پیکسل متناسب با صفحه مورد استفاده قرار گیرند. اما روشی وجود دارد که می‌توان با حجم کمتر و کیفیت بسیار بالاتری از تصاویر برداری مانند SVG و یا فونت‌های آیکونیک استفاده کرد. این فناوری در وب، موبایل و دسکتاپ مورد استقبال قرار می‌گیرد و ما در این بخش قرار است راجع به نحوه‌ی استفاده از فونت‌های آیکونی در پروژه‌های تحت فناوری کیوت کوئیک و QML صحبت کنیم.
      قبل از هر چیز لازم است فونت آیکونیک مورد نظر خود را دریافت و بر روی پروژه خود اعمال کنید. برای این منظور ما FontAwesome را پیشنهاد می‌کنیم. جهت دریافت نسخه‌ به روز آن را از این بخش دریافت کنید.
      وارد محیط Qt Creator شوید و پروژه‌ی خود را از نوع Qt Quick ایجاد کنید، در بخش qrc فونت‌های دسکتاپ را به پروژه اضافه کنید. سپس وارد فایل main.qml شده و نوع تعریف فونت را اعلان کنید. به صورت زیر:
      FontLoader { id:fontAwesomeStandard source: "qrc:/font/Font Awesome 5 Free-Regular-400.otf" } FontLoader { id:fontAwesomeBrand source: "qrc:/font/Font Awesome 5 Brands-Regular-400.otf" } FontLoader { id:fontAwesomeSolid source: "qrc:/font/Font Awesome 5 Free-Solid-900.otf" } توجه داشته باشید که کُد‌های یونیک را با کاراکتر u ترکیب کنید. برای مثال کد f007 شناسه آیکون کاربری می‌باشد که در اینجا باید به صورت u\f007 نوشته شود.
      Text { text: "\uf007" font.family: fontAwesomeSolid.name verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter font.pixelSize: 128 anchors.centerIn: parent } کُد‌های مختص آیکون‌ها نسبت به نوع فایل فونت متفاوت هستند، کد مرتبط با آیکون کاربر در داخل فایل Free-Solid می‌باشد که باید به آن‌ها توجه کنید. برای به دست‌ آوردن کد‌های آیکونیک از طریق این آدرس اقدام کنید. برای مثال فایل Brand دارای آیکون‌های برندیگ است که کد آن به صورت زیر خواهد بود.
      Text { text: "\uf369" font.family: fontAwesomeBrand.name verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter font.pixelSize: 128 anchors.centerIn: parent } در ادامه می‌توانید فایل ضمیمه شده پروژه را دریافت نمایید.
      FontAwesome.zip
×