Qt

saalek110

Well-Known Member
آخرین ویرایش:

saalek110

Well-Known Member
نحوه نصب کیوت:
نحوه نصب کیوت – آموزش QT

اگر سایت فوق آنلاین بود به سایت بالا مراجعه کنید. ولی من هم در زیر کمی نقل می کنم.
نقل: اگر آخرین ورژن کیوت رو دانلود کرده باشید تمام پکیج هایی که ممکنه توی ویندوز ازشون استفاده کنید توی همون فایلی که دانلود کردید موجود خواهد بود.
منظور از آخرین ورژن 5.9.2 هست.

بعد از باز کردن فایل نصبی با پنجره زیر مواجه میشد:setup-1-268x300.png
next رو بزنید: setup-2-268x300.png
توی این قسمت شما باید مشخصات اکانت کیوتی رو که خرید کردید و یا به صورت تریال استفاده میکنید وارد کنید.

یادتون باشه اگر از اکانت 30 روزه استفاده کنید بعد از این مدت نرم افزار شما غیر فعال میشه.

در نتیجه پیشنهاد من اینه که اصلا به فکر اضافه کردن اکانت کیوت نباشید و دکمه skip رو بزنید.

فکر نکنید که با وارد نکردن اکانت شما بخش هایی از قسمت های پلتفرم کیوت رو از دست میدید چون تمام قسمتهای کیوت به صورت اپن سورس موجوده.
setup-3-268x300.png
next.
setup-4-268x300.png
انتخاب محل نصب و ادامه.(پیشنهاد میکنم برای جلوگیری از مشکلات در آینده از درایو پیشنهادی استفاده کنید)
سالک: حجمش زیاده ده بیست گیگ است. ببینید درایوتان جا دارد یا نه.
setup-5-1-279x300.png
عکس فقط قسمت اول انتخاب ها رو نشون میده.

اگر از Visual Studio استفاده میکنید باید نسخه درستش رو انتخاب کنید در غیر این صورت mingw رو انتخاب کنید.(پیشنهاد من mingw هست)

اگر میخواید واسه اندروید برنامه نویسی کنید بسته به نوع معماری دستگاهتون هرکدوم رو انتخاب کنید.

برای دستگاههای اندرویدی که پردازنده آنها آرم هست armv7 و برای بقیه از جمله امولاتور و یا دستگاه های اندرویدی با معماری غیر از آرم x86 رو انتخاب کنید.

اگر لازم دارید سورس کیوت رو داشته باشید که من بعید میدونم نیازی باشه میتونید source رو هم انخاب کنید.

اگر برای ویندوز فون میخواید برنامه بنویسید پکیج مناسب UWP رو انتخاب کنید.

پیشنهاد من اینه که پکیج هایی که خود کیوت گذاشته رو هم انتخاب کنید. البته اونهایی که TP کنارشون نوشته شده فعلا به صورت تست ارایه شده.
setup-5-2-300x236.png
در قسمت پایین هم که حتما Qt Creator رو انتخاب کنید و اگر در بالا mingw رو انتخاب کردید اینجا هم انتخابش کنید .

perl هم واسه ساخت بعضی پلاگین های کیوت مورد استفاده قرار میگیره که فکر نکنم لازمتون بشه.
setup-6-268x300.png
setup-7-268x300.png
setup-8-268x300.png
قسمتهایی بعدی هم چیز خاصی ندارند .

صبرکنید تا نصب تموم بشه.

نکته: این انتخابات توی نصب از همین ورژن کیوت به این شکل در اومده و در ورژن های قبلی شما باید هر کدوم رو که میخواستید به طور جداگانه از سایت کیوت دانلود میکردید.

اینم از این قسمت امیدوارم که استفاده لازم رو برده باشید .

موفق و پیروزباشید.
پایان نقل.




 
آخرین ویرایش:

saalek110

Well-Known Member
سالک: مطلب زیر فقط نقل است.
13 دلیل برای استفاده از کیت برنامه نویسی Qt
برنامه نویسان و کسانی که به برنامه نویسی علاقه دارند، برای استفاده از زبان ها و ابزارهای مختلف برنامه نویسی گزینه های زیادی را می توانند انتخاب کنند. Qt سیمبیان نیز یکی از پلات فورم هایی است که امکانات متعددی در اختیار برنامه نویسان کاربردهای موبایلی قرار می دهد. در این مطلب 13 دلیل برای استفاده از این کیت نرم افزاری ارایه شده است.



2071052441681519716201176223284127204515.jpg


پشتیبانی و سرمایه گذاری
Qt یک چارچوب برنامه نویسی منبع باز است؛ اما خیلی سریع تر از پروژه هایی شبیه به خودش کار می کند. زیرا نوکیا سرمایه گذاری و پشتیبانی از آن را به عهده دارد و متعهد شده که به کار توسعه Qt ادامه دهد، امکانات جدید به آن اضافه کند و پیش برد و ارتقای آن را پشتیبانی کند. Qt منبعی از خلاقیت، نرم افزارهایی با کیفیت و راهکارهایی است که با استراتژی امروز و نوآوری نوکیا عجین شده است.


استفاده از ویرایشگر بصری

ابزارهای برنامه نویسی بصری به طراحان امکان می دهد که رابط های کاربری زیبا و روان بسازند و همگام با برنامه نویسان برای روند تولید نرم افزار همکاری کنند. این محیط بصری تمام کارهای سخت و سنگینی که شامل مشخص کردن ابعاد و مشخصه های اجزای رابط کاربری است را به صورت خود کار انجام میدهد.



استفاده از IDE قدرتمند و کامل

سازندگان Qt قابلیت ویرایش، طراحی، خطا گیری، مدیریت پروژه، محلی کردن و ابزارهای تألیف را با هم ترکیب کرده اند. هر چیزی که شما برای خلق برنامه های کامپیوترهای دسکتاب و گوشی های هوشمند لازم دارید در Qt پیدا می شود. همه چیز طوری درست شده که در کنار هم کار کنند و دیگر نیازی نباشد برای انجام کارهای متفاوت در یک برنامه در محیط های مختلف حرکت کنید. پکیج هایی مثل این، اغلب صدها پوند قیمت دارد و به هیچ وجه همه زبان های برنامه نویسی را پشتیبانی نمی کند.



رایگان بودن

تمامی ابزارها Qt برای دانلود و استفاده رایگان است و اجازه دارید که از آنها حتی برای ایجاد پروژه های تبلیغاتی خود استفاده کنید. تنها استثنا زمانی است که بخواهید تغییری در ابزارهای Qt ایجاد کنید و آن را با انجمن به اشتراک نگذارید. اگر به این نتیجه رسیدید که این برنامه فقط مال شما نیست، پس برای تان هزینه ای نخواهد داشت.



پشتیبانی از چند پلات فورم

تولید برنامه هایی که با استفاده از یک منبع ساخته شدهاند و هم در کامپیوترهای Mac و هم ویندوز کار کند، بدن Qt کار بسیار حرفه ای و تخصصی است به این دلیل است که بسیاری از برنامه هایی که در چند پلات فورم اجرا می شوند مانند Google Earth و Skype از آن استفاده می کنند.


ثبات و کیفیت


Qt از سال 1992 ایجاد و جدیدترین نسخه آن 2، 7، 4، به تازگی عرضه شده است. همه چیز در Qt تست شده، به طور حرفه ای استفاده شده، تعدیل شده، دوباره عرضه شده و بارها ارتقا پیدا کرده است. در نتیجه، میزان اعتبار بالاتری دارد و استفاده از آن بسیار ساده تر است.


انجمن آنلاین
اگر مشکلی داشتید و خواستید در مورد کاری که انجام می دهید با کسی مشورت کنید و گپ بزنید، می توانید از انجمن Qt استفاده کنید. برای این کار یک بلاگ ایجاد شده است؛ البته nntp groups، message boards و mailing lists هم وجود دارد.


استفاده از C++
تصور غلطی وجود دارد که می گویند Qt یک زبان برنامه نویسی جدید نیست. اگر برای برنامه نویسی آموزش دیده اید. پس این احتمال وجود دارد که برای بیشتر برنامه های خود از C++ یا Java استفاده می کنید بیشتر برنامه های Qt به زبان C++ به انضمام نوشته می شوند. البته پروژه نهایی می تواند به کلاینت های متفاوتی به راحتی گسترش پیدا کند. Qt این امکان را به شما می دهد که از همان مهارت های زبانی کنونی که دارید استفاده کنید تا نیازی نباشد که چیز جدیدی یاد بگیرید.


استفاده از QML
اگر به تازگی شروع کرده اید و می خواهید به سرعت چیزی خلق کنید،احتمالا به Qt Quick علاقه مند می شوید. در اینجا، شما از سازنده رابط کاربری بصری و کد Java Script – style QMLL برای قرار دادن برنامه ها در کنار همدیگر استفاده می کنید به یاد داشته باشید ممکن است قسمت های C++ و QML کاملا با یکدیگر ترکیب شوند و یک نرم افزار واحد را بسازند.


استفاده از Python

انجمن Qt به تازگی PySide را عرضه کرده است که به برنامه نویسان Python امکان می دهد تا از عناصر رابط کاربری Qt برای تولید برنامه های قابل اجرا در چند پلات فورم از طریق زبان های قراردادی استفاده کنند. البته PyQt نیز وجود دارد. (هر دو مسیر برای کاربرانی که با Terminal Modeها آشنا هستند و از کدهای منبع تشکیل شده اند).

352042012431752172241961671732551458692244194.jpg

استفاده در گوشی های آندرویید


بسیاری از اضافات و برنامه های جانبی توسط اعضای انجمن آنلاین Qt ایجاد می شوند به تازگی، امکان انتقال برنامه های Qt به گوشی های هوشمند آندرویید ایجاد شده که نتایج مثبتی نیز داشته است و اگر در آینده توسعه پیدا کند، پنجره ای باز از فرصت ها به روی برنامه نویسان گوشی های هوشمند Qt خواهد گشود.



منبع باز و ایجاد فرصت های جدید

مثالی که از آندرویید زدیم، تنها یکی از راه ها برای نشان دادن قدرت انجمن منبع باز Qt است. ابزارها و متعلقات جدید به طور منظم ایجاد می شوند. اگر تا به حال حتی به یکی از آنها هم بر نخورده اید، چیزی نیست که شما را از ساختن آن منع کند؛ پس آن را بسازید و به انجمن هدیه کنید.


مستند سازی
بعد از 18 سال تجربه در این کار، اعضای Qt مستندات بسیاری را گرد هم آورده اند، از نسخه های راهنما گرفته تا یادداشت های تئوری و خرده یادداشت های دستی. بعد از پیوستن به نوکیا، منبع غنی دیگری نیز مثل Forum Nokia نیز وجود دارد.
بخش دانش وزندگی تبیان

13 دلیل برای استفاده از کیت برنامه نویسی Qt
 
آخرین ویرایش:

saalek110

Well-Known Member
Qt چیست؟

Qt توی تعریف ساده یک چهارچوب کاری (framework) برای زبان سی پلاس پلاس است که به شما قابلیت های زیادی رو میده که بتونید سریعتر و قویتر و با رابط کاربری مناسبتری یه نرم افزار رو تولید کنید.در این آموزشها برنامه نویسی سی پلاس پلاس در محیط کیوتی کریتور آموزش داده میشه.

Qt Creator :

ابتدا از فریم ورک کیوتی در محیط ویژوال استودیو استفاده می شد ولی بعد این فریم ورک اینقد گسترش یافت که اومدن با خود کیوت یه محیط مجزا براش درست کردن به نام Qt Creator که هم اکنون اکثرا از این محیط برای استفاده از فریم ورک کیوت استفاده میکنند و کمتر کسی از ویژوال استودیو استفاده میکنه .بنظ شخص بنده از خیلی نظرها کیوتی کریتور بهتر از ویژوال استودیو است که اگه قبلا با ویژوال استودیو کار کردین وقتی کیوت رو یاد بگیرین میفهمین برنامه نویسی چقد شیرینتر و راحتتر بوده.

قابلیت ها:

در کیوتی می تونید به سه زبان سی پلاس پلاس ، پایتون ، qml برنامه نویسی کنید.(qml یه زبان برنامه نویسی شبیه جاوا اسکریپت و css که برنامه های با ظاهر متفاوتتر میتونید بسازید) .

کتابخونه ها و کلاسهای فراوانی داره که برای هر کاری که شما بخواین انجام بدین کلاسش موجود هست ازش یه شی میسازین و استفاده میکندید. این کتابخونه ها تو زمینه برنامه نویسی شبکه، گرافیک کامپیوتری (openGl,OpenCV) ,کتابخونه هایی مخصوص برنامه نویسی توی اندروید و ویندوز و …

طراحی رابط کاربری برای برنامه هاتون و میتونید با استفاده از CSS,Html انجام بدین که یه محیط کاربر پسند و زیبا طراحی کنید برای کاربرای مد نظرتون.

پشتیبانی کامل از شی گرایی از دیگر ویژگی های برجسته این محیطه.

و شاید کلیدی ترین ویژگی کیوتی این باشه که برنامه تون رو میتونید بدون تغییر یا با تغییرات خیلی کوچیکی توی سه سیستم عامل معروف(Win,Linux,Mac) خروجی بگیرین.

همچنین میتونید برای اندرویدهم برنامه بنویسید.
نقل از :
http://negatron.ir/rezazx/آموزش-برنامه-نویسی-cpp-در-محیطqt-جلسه-اول/
 

saalek110

Well-Known Member
تاریخچه
دو نفر از بنیانگذاران Trolltech در سال 1991 توسعه Qt را شروع کردند. در ابتدا Qt فقط در ویندوز و لینوکس قابل استفاده بود. سپس به مرور پشتیبانی از Mac هم به آن افزوده شد. در سال 2008 نوکیا شرکت Trolltech را به خدمت گرفت تا از Qt برای سیستم عامل symbian استفاده کند. اکنون نوکیا قصد استفاده از سیستم عامل مایکروسافت را بر روی گوشی های خود دارد و سیستم عامل های ویندوز 8 و آندروید جایگزین سیمبین به منظور توسعه و پشتیابنی توسط Qt شده اند.
برنامه نویسی برای ویندوز، لینوکس و آندروید با Qt - نامینیک
 

saalek110

Well-Known Member
کتاب آموزش برنامه نویسی ++C با Qt به زبان فارسی
farsi_qt.gif

دانلود از:
https://www.sourcebaran.com/کتاب-آموزش-برنامه-نویسی-c-با-qt.html


سرفصل های کتاب آموزش برنامه نویسی ++C با Qt به زبان فارسی :

مقدمات و معرفی QT برای شروع کار :
راهنمایی برای دانلود مناسبترین نسخه از QT
معرفی و کار با Signal و Slot ها و Event ها
معرفی و کار با نمایش Windows
معرفی و کار با لایه ها، زبانه ها و بدنه های طراحی
معرفی و کار با قابلیتهای Html و CSS در طراحی
معرفی و کار با لایه های افقی و عمودی
معرفی و کار با لایه های Grid در طراحی فرم
معرفی و کار با جداکننده های Splitter
معرفی و کار با دایرکتوری ها
معرفی و کار با فایل ها / خواندن و نوشتن در آنها
معرفی و کار با برچسپ ها
معرفی و کار با Button
معرفی و کار با LineEdit
معرفی و کار با CheckBox
معرفی و کار با RadioBox
معرفی و کار با ComboBox
معرفی و کار با ListWidget
معرفی و کار با TreeWidget
معرفی و کار با Action
معرفی و کار با Progress ها و Slider ها
معرفی و کار با Statusbar ها
معرفی و کار با MessageBox
معرفی و کار با Timer / Qtimer
معرفی و کار با Thread ها
معرفی و کار با Qmap
معرفی و کار با Qhash
معرفی و کار با QstringList
معرفی و کار با الگوریتم های مرتب سازی
معرفی و کار با الگوریتم های جستجو کننده
معرفی و کار با ToolTip
معرفی و کار با شبکه
معرفی و باینتری و سریالیز کردن آبجکن ها
معرفی و کار با TextStream ها
معرفی انواع حالت های کامایل در Qt
نحوه افزودن دیگر کتابخانه های C++ در محیط Qt Creator و استفاده همراه با کتابخانه Qt
 

پیوست ها

  • CPP-With-Qt_SourceBaran.Com.zip
    3 مگایابت · بازدیدها: 11

saalek110

Well-Known Member
یک برنامه ساده و یک مشکل:
دکمه ای در پنجره کوچک

سالک: کنار پوشه پروژه ای که می سازید یک پوشه دیگر هست به نام build-a1-Desktop_Qt_5_12_1_MinGW_64_bit-Debug\debug
البته a1 اسم پروژه من است. در مسیر فوق فایل exe برنامه بود که اجرا نمیشد. می گفت فلان dll را ندارم.
من رفتم پوشه :
C:\Qt\Qt5.12.1\5.12.1\mingw73_64\bin
یعنی یکی از پوشه های جایی که qt را نصب کرده بودم آن dll را کپی کردم کنار فایل exe . باز حدود 5 بار دیگه گفت dll می خواهم و من کپی کردم.
اگر کار راحت تر می خواهید فایل exe را ببرید پیش آن dll ها. :shock:
بهرحال برنامه اجرا شد. این هم شکلش:
qt5.gif
این هم برنامه اش:
PHP:
#include <QApplication>
#include <QPushButton>

int main(int argc, char **argv)
{
QApplication app (argc, argv);

QWidget window;
window.setFixedSize(100, 50);

QPushButton *button = new QPushButton("Hello World", &window);
button->setGeometry(10, 10, 80, 30);

window.show();
return app.exec();
}
منبع

شش تا dll لازم داشت مجموعا با حجم 650 مگا!
oh4.gif
 
آخرین ویرایش:

saalek110

Well-Known Member
خواندن و نوشتن در فایل:
PHP:
#include <QCoreApplication>
#include <QFile>
#include <QString>
#include <QDebug>
#include <QTextStream>

void write(QString filename)
{
    QFile file(filename);
    // Trying to open in WriteOnly and Text mode
    if(!file.open(QFile::WriteOnly |
                  QFile::Text))
    {
        qDebug() << " Could not open file for writing";
        return;
    }

    // To write text, we use operator<<(),
    // which is overloaded to take
    // a QTextStream on the left
    // and data types (including QString) on the right

    QTextStream out(&file;);
    out << "QFile Tutorial";
    file.flush();
    file.close();
}

void read(QString filename)
{
    QFile file(filename);
    if(!file.open(QFile::ReadOnly |
                  QFile::Text))
    {
        qDebug() << " Could not open the file for reading";
        return;
    }

    QTextStream in(&file;);
    QString myText = in.readAll();
    qDebug() << myText;

    file.close();
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QString filename = "C:/Qt/MyFile.txt";
    write(filename);
    read(filename);

    return a.exec();
}
منبع

سالک: اگر انگلیسی مسلط هستید از سایت منبع بخوانید. من تلاش کردم قسمتی را ترجمه کنم.
کلاس QFile برای خواندن و نوشتن فایل است.
برای متن و باینری.
این کلاس ممکن است با QTextStream or QDataStream استفاده شود.
نام فایل در سازنده ارسال می شود. یا با setFileName ارسال شود. ممیز استفاده می شود نه بک اسلش. / & \
QTextStream takes care of converting the 8-bit data stored on disk into a 16-bit Unicode QString. By default, it assumes that the user system's local 8-bit encoding is used (e.g., UTF-8 on most unix based operating systems). This can be changed using setCodec().

To write text, we can use operator<<(), which is overloaded to take a QTextStream on the left and various data types (including QString) on the right.
برنامه در فایلی می نویسد و بعد می خواند و در کنسول چاپ می کند.
 
آخرین ویرایش:

saalek110

Well-Known Member
و ادامه اش:
QMimeType and QMimeDatabase
QFile (Serialization I)
QFile (Serialization II - Class)
Tool Tips in HTML Style and with Resource Images
QPainter
QBrush and QRect
QPainterPath and QPolygon
QPen and Cap Style
QBrush and QGradient
QPainter and Transformations
GraphicsView and QGraphicsScene
Customizing Items by inheriting QGraphicsItem
QGraphicsView Animation
FFmpeg Converter using QProcess
QProgress Dialog - Modal and Modeless
QVariant and QMetaType
QtXML - Writing to a file
QtXML - QtXML DOM Reading
QThreads - Introduction
QThreads - Creating Threads
Creating QThreads using QtConcurrent
QThreads - Priority
QThreads - QMutex
QThreads - GuiThread
QtConcurrent QProgressDialog with QFutureWatcher
QSemaphores - Producer and Consumer
QThreads - wait()
MVC - ModelView with QListView and QStringListModel
MVC - ModelView with QTreeView and QDirModel
MVC - ModelView with QTreeView and QFileSystemModel
MVC - ModelView with QTableView and QItemDelegate
QHttp - Downloading Files
QNetworkAccessManager and QNetworkRequest - Downloading Files
Qt's Network Download Example - Reconstructed
QNetworkAccessManager - Downloading Files with UI and QProgressDialog
QUdpSocket
QTcpSocket
QTcpSocket with Signals and Slots
QTcpServer - Client and Server
QTcpServer - Loopback Dialog
QTcpServer - Client and Server using MultiThreading
QTcpServer - Client and Server using QThreadPool
Asynchronous QTcpServer - Client and Server using QThreadPool
Qt Quick2 QML Animation - A
Qt Quick2 QML Animation - B
Short note on Ubuntu Install
OpenGL with QT5
Qt5 Webkit : Web Browser with QtCreator using QWebView Part A
Qt5 Webkit : Web Browser with QtCreator using QWebView Part B
Video Player with HTML5 QWebView and FFmpeg Converter
Qt5 Add-in and Visual Studio 2012
Qt5.3 Installation on Ubuntu 14.04
Qt5.5 Installation on Ubuntu 14.04
Short note on deploying to Windows
 
آخرین ویرایش:

saalek110

Well-Known Member
http://qtips.ir/1397/05/تولید-خروجی-نهایی-یک-پروژه-کیوت-با-ابزا/

تولید خروجی نهایی یک پروژه کیوت با ابزار windeployqt
سلام دوستان عزیز

حتما تا الان به این مشکل برخوردید که وقتی پروژتون تموم میشه به این قضیه فکر میکنید که چکار کنم خروجی نهاییم روی هر سیستمی به راحتی و بدون نیاز به نصب کیوت قابل اجرا باشه.

نکته اول اینه که هر موقع خواستید خروجی نهایی رو بگیرید، حتما Release کامپایل کنید.

release.png

خب اگه به مسیری برید که فایل اجرایی براتون ساخته شده و فایل رو اجرا کنید قطع با خطایی روبرو میشید که میگه یه سری DLL نیاز داره که کنارش نیستند. در ویندوز کتابخانه‌هایی که یه برنامه نیاز داره میتونه کنارش باشه (و البته جاهای دیگه). پس یه راه حل اینه که هرچی DLL میگه کم دارم کنارش کپی کنید ولی این راه خیلی طولانیه و خطا پذیر. راه حل بهتر استفاده از ابزار windeployqt هستش که با Qt نصب میشه.

خب برای استفاده از این ابزار راه حل زیر رو طی کنید:

۱٫یه دونه کامند لاین ویندوز بالا بیارید. مثلا با زدن Windows+R

۲٫به مسیر نصب کیوت و پوشه bin برید.
qt-release-bin.png

۳٫دستور qtenv2.bat رو اجرا کنید تا Environment Variableهای کیوت تنظیم بشن.

اگر خروجی Setting up environment for Qt usage… رو مشاهده کردید یعنی همه چی به خوبی جلو رفته.

۴٫ حالا دستور windeployqt رو اجرا کنید. اگه این دستور با موفقیت اجرا شد یعنی مرحله قبل اوکی بوده.

۵. خب فایل exe تون رو توی یه پوشه خالی کپی کنید و به اون پوشه cd کنید.
qt-release-bin2.png

۶٫ خب در مرحله آخر کافیه دستور windeployqt.exe exe_name رو اجرا کنید. یعنی دستور windeployqt رو اجرا کنید و به عنوان پارامتر به اون نام فایل اجرایی رو بدید:
qt-release-bin3-e1532803867241.png

خب همون طور که میبیند کنار فایل اجرایی، فایلهایی که نیاز بوده کپی شده اند. خب الان می‌تونید خیلی راحت برنامه تون رو هرجایی اجراکنید. البته بهتره با ابزار dependency walker بازم چک کنید که آیا DLL دیگه ای از سمت کامپایلر نیاز هست یا نه.
dependencywalker.png

همونطور که می‌بینید یه سری DLL که مربوط به Visual Studio است هنوز کمه و اونا رو باید از مسیر نصب Visual Studio پیداشون کنید و کنار فایل اجرایی تون کپی کنید:

مثلا برای من در مسیر D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools قرار داشت.

امیدوارم مفید باشه براتون.
 

saalek110

Well-Known Member
https://melec.ir/شروع-کار-با-gui-در-نرم-افزار-qt/

شروع کار با GUI در نرم افزار Qt
مهر 5, 1397 برنامه نویسی ارسال دیدگاه


در جلسه سوم مجموعه آموزش نرم افزار Qt، با ساخت پروژه ای از نوع “Qt Console Application” کار با نرم افزار کیوت را شروع کردیم. در این مقاله می خواهیم پروژه ای از نوع “Qt Widgets Application” بسازیم که امکان برنامه نویسی به زبان ++C را به همراه امکان ایجاد محیط گرافیکی ایجاد می کند و از این پس پروژه ها را از این نوع خواهیم ساخت.

برای ایجاد پروژه مانند جلسه سوم گزینه “New Project” را انتخاب کنید. در پنجره باز شده، از سربرگ “Projects” گزینه “Application” را انتخاب نمائید. سپس روی “Qt Widgets Application” کلیک کرده و “choose” را انتخاب کنید. در مرحله بعد نام پروژه و محل ذخیره آن را تعیین نمائید.

1.png


سپس نوع کامپایلر را MinGW انتخاب کنید.

در پنجره “Class Information” نام کلاس، نوع کلاس، نام فایل های هدر، سورس و فرم را تعیین می کنیم. نوع کلاسی که می خواهیم در حال حاضر بسازیم “QMainWindow” است و فعلاً با کلاس های دیگر کاری نداریم. چرا که “Main Window” کامل ترین نوع یک فرم در Qt است و قابلیت هایی دارد که در “QWidget” و “QDialog” وجود ندارد. اگر بخواهیم Gui برنامه را در یک محیط گرافیکی تعریف کنیم، تیک “Generate forme” را که به صورت پیش فرض فعال است، دست نخورده نگه می داریم. اما اگر بخواهیم Gui برنامه را با کد تعریف کنیم، این تیک را برمی داریم. در این پروژه می خواهیم از فرم استفاده کنیم، لذا به آن دست نمی زنیم. برای آشنایی با مفهوم کلاس پیشنهاد می شود آموزش مفهوم کلاس و شیء در برنامه نویسی C++ را بررسی نمائید.

QT_IntroductionToGUI_ClassInformation.png


بقیه مراحل را مانند مقاله قبل طی می کنیم تا پروژه ایجاد شود.

مطلب پیشنهادی: نحوه استفاده از سیگنال و اسلات در کیوت - نوشتن برنامه در Qt بدون استفاده از فرم ها
QT_IntroductionToGUI_FirstQtGUI.png


همان طور که مشاهده می کنید، پروژه ایجاد شده شامل یک فایل با پسوند “.pro” و سه فولدر با نام های “headers”، “Sources” و “Forms” است.

فولدر “headers”
در فولدر “headers” تمامی فایل های C++ از نوع “.h” یا همان هدرها وجود دارد. کتابخانه هایی که لازم است به پروژه اضافه شوند، در این فایل فراخوانی می شوند. همچنین این فایل محل معرفی متغیرهای global برنامه، Signal ها، Slot ها و Function ها می باشد ( توضیحات هر کدام در جای خود داده می شود و با ذکر مثال های متعدد همه این مفاهیم کاملاً برای شما روشن خواهند شد).

فولدر”Sources”
در فولدر”Sources” تمامی فایل های C++ از نوع “.cpp” یا همان سورس های برنامه قرار دارد. سورس محل نوشتن کد برنامه و نیز تعریف Slot ها و Function ها است.

فولدر “Forms”
در فولدر “Forms” فایل های با پسوند “.ui” قرار دارد که همان فایل های گرافیکی برنامه هستند. این فولدر در صورتی که موقع ایجاد پروژه تیک Forms را زده باشید، ایجاد می شود.

مانند مقاله جلسه قبل برنامه را در مود Release اجرا نمائید. مشاهده می کنید که یک پنجره خالی باز می شود. این پنجره همان محیط گرافیکی نرم افزار Qt است که قرار است با آن کار کنیم و امکانات مختلفی به آن اضافه کنیم.

QT_IntroductionToGUI_EmptyGUI.png


روی فایل با پسوند “ui.” دو بار کلیک کنید. در اینجا می توانید اشیاء مختلفی که نرم افزار کیوت در اختیار ما قرار می دهد، در ستون سمت چپ مشاهده کنید.
QT_IntroductionToGUI_QtForm.png


طرح پروژه نمونه
در این پروژه می خواهیم یک کلید با نام “exit” داشته باشیم که با کلیک روی آن Gui بسته شود .

در نرم افزار کیوت کلاسی به نام “push button” از قبل تعریف شده است و کافی است برای حل مسئله ی طرح شده، یک شی یا object از آن تعریف کنید. از ستون سمت چپ، روی “push button” دو بار کلیک کرده و با “Drag & Drop” آن را در جای دلخواه خود روی Gui قرار دهید.
QT_IntroductionToGUI_PushButton.png


مطلب پیشنهادی: آموزش نصب نرم افزار Qt - جلسه دوم آموزش برنامه نویسی با نرم افزار کیوت
با دو بار کلیک داخل “push button” می توانید نام آن را تغییر دهید (این نام می تواند فارسی هم باشد).

حال برنامه را اجرا کنید. مشاهده می کنید که یک “push button” در پنجره ظاهر می شود. روی آن کلیک کنید. می بینید که با کلیک روی آن هیچ اتفاقی نمی افتد؛ چون هنوز برای برنامه تعریف نکردیم که با کلیک کردن چه اتفاقی بیفتد. برای این کار از روش سیگنال-اسلات استفاده می کنیم. رابطه سیگنال و اسلات یک رابطه علت و معلولی یک طرفه است. به طوری که با انتشار سیگنال، اسلات فراخوانی می شود. (سیگنال و اسلات دو مفهوم پرکاربرد در کار با نرم افزار کیوت هستند و در آموزش های آتی مورد بررسی دقیق تر قرار خواهند گرفت).

برای معرفی سیگنال و اسلات، از نوار ابزار گزینه “Edit Signals/Slots” را انتخاب کنید.

QT_IntroductionToGUI_SignalSlot-1.png


سپس روی “push button” دو بار کلیک کنید و در فضایی خالی رها کنید تا پنجره “Configure Connection” ظاهر شود. سپس تیک “Show Signals and Slots inheritented from QWidget” را بزنید. همان طور که می بینید در ستون سمت چپ سیگنال های تعریف شده برای شی “push button” و در ستون سمت راست اسلات های تعریف شده برای هر کدام نشان داده شده است. ما می خواهیم علت (==سیگنال)، کلیک کردن و معلول (==اسلات)، بسته شدن باشد. بنابراین مطابق شکل زیر ()Clicked و سپس ()Close را انتخاب می کنیم.

مطلب پیشنهادی: بهترین زبان های برنامه نویسی امسال
QT_IntroductionToGUI_CloseGUI.png


حال کلید OK را بزنید و برنامه را اجرا کنید. روی کلید exit کلیک کنید. مشاهده می کنید که پنجره ای که ساختید بسته می شود. تبریک! شما اولین برنامه گرافیکی خود را با نرم افزار Qt نوشتید!

خوب همان طور که در این پروژه دیدید، کیوت امکان طراحی گرافیکی را در قالب منوهایی فراهم می کند که باعث آسان شدن کار طراحی می شود. اکثر آموزش های نرم افزار Qt موجود در سایت ها هم مبتنی بر استفاده از فرم ها هستند. اما ما در پروژه های پیش رو از فرم استفاده نخواهیم کرد. چون قرار است شما توسط این GUI کنترل یک سخت افزار را به دست بگیرید. بنابراین مطلوب تر و حرفه ای تر این است که درگیر کد شوید، نه درگیر امکانات گرافیکی. به خصوص برای مراحل بعدی که بخواهید کدتان را مثلاً با QML ترکیب کنید، کار کردن با کد هم انعطاف بیشتری برای سوئیچ بین محیط های گرافیکی مختلف در اختیار شما قرار می دهد و هم ذهن شما را آماده تر می کند.

دیگر جلسات این آموزش
 

پیوست ها

  • QT_IntroductionToGUI_CloseGUI.png
    QT_IntroductionToGUI_CloseGUI.png
    30.4 کیلوبایت · بازدیدها: 0
  • QT_IntroductionToGUI_EmptyGUI.png
    QT_IntroductionToGUI_EmptyGUI.png
    3.2 کیلوبایت · بازدیدها: 0
  • QT_IntroductionToGUI_PushButton.png
    QT_IntroductionToGUI_PushButton.png
    3.5 کیلوبایت · بازدیدها: 0
  • QT_IntroductionToGUI_QtForm.png
    QT_IntroductionToGUI_QtForm.png
    134.3 کیلوبایت · بازدیدها: 0
  • QT_IntroductionToGUI_SignalSlot-1.png
    QT_IntroductionToGUI_SignalSlot-1.png
    51 کیلوبایت · بازدیدها: 0

saalek110

Well-Known Member
Qt
Qt که به صورت کیوت تلفظ می‌شود، یک فریمورک نرم افزاری cross-platform یا چندسکویی می‌باشد؛ و از آن برای ایجاد ترم‌افزارهای گرافیکی (GUI) و کلاسیک (کنسول یا Console) استفاده می‌شود. در واقع به کمک کیوت می‌توان بدون تغییرات یا با تغییرات اندکی، ظاهر یکسانی را در سیستم‌عامل‌های مختلفی از جمله موبایل، در اختیار داشت. (البته کیوت تنها شامل امکانات طراحی نبوده و قابلیت‌های بسیار دیگری را نیز دربر دارد)

این فریم ورک، با زبان سی‌پلاس‌پلاس توسعه یافته شده و به طور سنتی برنامه‌نویسی با این فریم‌ورک در C++ ممکن است. و البته در نسخه‌های جدید آن، امکان برنامه‌نویسی با جاوا اسکریپت و برخی زبان‌های دیگری مثل پایتون هم وجود دارد.

به نقل از ویکی پدیا:

کیوت مجموعه‌ای از کتابخانه‌ها و سرآیندهای نوشته‌شده به زبان سی++ است که به برنامه‌نویس امکان توسعه‌ی آسان نرم‌افزارهای کاربردی را می‌دهد. کیوت شامل چندین کلاس برای کار با واسط گرافیکی، چندرسانه، ابزارهای پایگاه‌داده، شبکه و … می‌باشد. نرم‌افزارهای نوشته شده با ابزار کیوت قادرند تا با استفاده از یک کامپایلر زبان سی‌پلاس‌پلاس برای طیف وسیعی از سیستم‌عامل‌ها از جمله گنو/لینوکس (نسخه‌های رومیزی و وسیله‌های قابل حمل)، ویندوز، ویندوز CE، مک‌اواس و … کامپایل یا همگردانی شوند. بدین ترتیب حمل نرم‌افزار نوشته شده بدون تغییر در متن کد نوشته شده امکان‌پذیر است. از کیوت در زبان‌های برنامه‌نویسی متعددی مانند سی++ و جاوا و پایتون می‌توان استفاده‌کرد.

جالب است...
جالب است که بدانید، بسیاری از شرکت‌های بزرگ و نرم‌افزارهای کاربردی با استفاده از این فریم‌ورک، نرم‌افزارهای مختلفی را به کاربران خود ارائه کرده‌اند. از آن جمله می‌توان به نرم‌افزار Telegram Desktop اشاره نمود که با استفاده از Qt توسعه یافته است. همچنین نرم‌افزارهای مشهوری مانند Google Earth و Skype نیز از Qt برای برنامه‌نویسی استفاده کرده‌اند.
کارایی برنامه‌های نوشته شده با Qt
تمامی فریم‌ورک‌هایی که به عنوان یک لایه میان کدهای شما و کدهای Native سیستم‌عامل عمل می‌کنند، سبب کاهش سرعت و افزایش مصرف حافظه می‌شوند. این مقدار در Qt به دلیل چندین سال توسعه و داشتن میلیون‌ها کاربر و بهبودهای گسترده، به مقدار حداقل رسیده است.

در واقع برنامه‌های تولید شده با Qt اگر به خوبی بهینه‌سازی شوند، سریع و با مصرف حافظه‌ی کم خواهند بود. Qt به خوبی از پردازش‌های موازی پشتیبانی می‌کند و در نتیجه سرعت پاسخگویی به کاربر در سیستم‌هایی که دارای چندین هسته‌ی پردازنده هستند، قابل قبول خواهد بود. استفاده از افزونه‌های مختلف در تولید نرم‌افزارهای Qt یکی از عواملی است که می‌تواند اثر مستقیم و زیادی روی سرعت و مصرف حافظه‌ی نرم‌افزار تولیدشده بر جای بگذارد.

محیط‌های توسعه کیوت
محیط‌های توسعه‌ی مختلفی برای ابزار Qt وجود دارد که اکثرا توسط برنامه‌نویسان علاقه‌مند به این ابزار ایجاد شده‌اند. و جدیدترین محیط توسعه این ابزار، Qt Creator نام دارد که توسط صاحب آن یعنی نوکیا ایجاد شده‌است. و مهم‌تر از همه، Qt Designer که نرم‌افزاری برای طراحی رابط‌های کاربری با استفاده از ویجت (دکمه، کادر متن و…) های از پیش طراحی شده است.

برنامه‌نویسی Qt در ویندوز علاوه بر نرم‌افزار Qt Creator با نصب افزونه‌ Qt روی Visual Studio نیز امکان‌پذیر است. همچنین محیط‌های توسعه‌ی دیگری مانند Eclipse و Monkey Studio توسط گروه‌ها و افراد مختلف برای برنامه‌نویسی Qt در ویندوز و لینوکس توسعه یافته‌اند.
برنامه‌نویسی موبایل
کدهای نوشته شده برای تولید یک نرم‌افزار موبایل یکسان ولی محیط‌های کامپایل آن متفاوت هستند. در سیستم‌عامل‌های گوناگون ممکن است به ابزارهای جانبی مختلفی برای کامپایل پروژه نیاز داشته باشید. برای مثال در iOS به XCode در کنار Qt Creator و در Android به Android SDK و JDK و NDK نیاز خواهد بود.

استفاده در تولید سخت‌افزار
کمک گرفتن از امکانات Qt در تولید سخت‌افزارهای مختلف نیز امکان‌پذیر است! برخی تولیدکنندگان مانند تولیدکنندگان تلویزیون‌های هوشمند، دستگاه‌های ناوبری، دستگاه‌های پزشکی، دشبوردهای کنترلی و بسیاری صنایع دیگر تا کنون با کمک این فریم‌ورک سخت‌افزارهایی با امکانات نرم‌افزاری قدرتمند تولید کرده‌اند.

مجوزهای کیوت
Qt در دو نسخه منبع باز و تجاری عرضه می‌شود؛ نسخه تجاری آزاد برای هر نوع توسعه نرم‌افزار است. در حالی که نسخه منبع باز محدود به توسعه نرم‌افزار در قالب مجوزهای GPLT و پروانه‌های سازگار است. و البته بعد از خرید Qt توسط شرکت نوکیا و از نسخه ۴٫۵ به بعد امکان توسعه نرم‌افزار در قالب مجوز LGPL نیز به مجوزهای نسخه منبع باز اضافه شده‌است.

بنابراین در حال حاضر کیوت با سه پروانه توزیع می‌شود:

 

saalek110

Well-Known Member
سالک:من امروز ویندوز ریختم. فایلهای اگزه کیوت که قبلا کنار dll هایش اجرا میشد دیگه اجرا نمیشه. :(

ولی ممکن است تنظیماتی را اگر انجام می دادم اجرا میشد. باید بررسی شود.
مثلا کاربر زیر راههای زیر را گفته:
There are several ways to deploy your application

1. Deploy your application with windeployqt/linuxdeployqt

This is the easiest way, windeployqt or linuxdeployqt is an application that will copy all required dependencies to your executable folder. Ready to run on another computer.

The steps are simple:

  1. Compile your binary in release mode
  2. Open the Qt developer console and type windeployqt "C:\folder\of\your\executable" (linuxdeployqt will be very similar)
  3. All libraries required to run the application on another computer are copied to to your application folder. You can create an archive and send it to someone else.
Note: linuxdeployqt is third-party.

2. Static build

Static build will be a single binary at the end that includes all Qt code. You can ship your single binary to someone, no additional libraries are required to run it. The executable is larger since all the Qt code is linked inside your executable.

The steps are as following:

  1. Download the Qt source code
  2. Unzip it to a folder
  3. Open the developer console of your installed compiler (i. e. MingW or MSVC)
  4. Switch to the folder and type

    ./configure -static -static-runtime

  5. When the configuration is done type nmake or make to build Qt statically.
  6. When the build process has finished create a new kit in Qt Creator and select the new qmake.exe or qmake from your source-code folder.
  7. Select in the project settings your kit to build a statically executable that requires not additional libraries.
3. Offline/Online Installer

This step requires some reading and fine tuning. Qt comes with an IFW (Installer Framework) where you can create online and offline installers. The installer will contain a .7z file of your executable and all dependencies. The installer is more comfortable for the user. It can create shortcuts, check available disk space, etc.

IIRC you need build the installer statically for MSVC or you have to ship the runtime libraries. If build with MingW you probably will not need any runtime libraries.

It is up to you which method you choose. If you own the commerical license you can ship all your closed source as static builds, but in general it's better to ship it as a dynamic build especially if you use OpenSSL where users can quickly exchange vulnerable libraries themself if required.
How to release a Qt/C++ application on Linux and Windows?
 
آخرین ویرایش:

saalek110

Well-Known Member
Deploy an Application on Windows - Qt Wiki
NOTE: The recommended way to deploy your application is to use the official deployment tool (windeployqt). Try that first! Continue reading this guide only if windeployqt doesn't quite work for you.

The windeployqt tool will gather files from a few different locations. Here is an example of an app that uses Qt Quick to display a picture (PACKAGE-SPECIFIC DLLS ARE NOT SHOWN):
Qt_Deployment_Structure_Windows.png
Sometimes, your app might be missing some functionality after deployment. Perhaps a window is blank, an image doesn't show, or a music file won't play. If this happens, windeployqt has probably forgotten to include a file that is only loaded at runtime (like a plug-in DLL).

Here is a systematic (albeit brute-force) way to identify the missing files. This guide is written for Qt 5 and assumes that:

  • The release version of your app works correctly when you build + run it from Qt Creator
  • Your (dynamically-linked) copy of Qt is installed in C:\Qt\5.2.1\mingw48_32\
Initial deployment (Quick and dirty)
  1. Close Qt Creator.
  2. Copy the following into C:\Deployment\
    1. The release version of MyApp.exe
    2. All the .dll files from C:\Qt\5.2.1\mingw48_32\bin\
    3. All the folders from C:\Qt\5.2.1\mingw48_32\plugins\
    4. (If you used QML) All the folders from C:\Qt\5.2.1\mingw48_32\qml\
  3. Rename C:\Qt\ to C:\QtHidden\ (This turns your PC into a clean environment, just like one that doesn't have Qt installed).
  4. Launch C:\Deployment\MyApp.exe.
If your app worked correctly, congratulations! You are almost ready for deployment. You don't want to ship a 1.5GB package though, so it's time to clean up unused files.

If it didn't work correctly, ask for help (see the Appendix)

Final deployment (Cleaned up)
Do the deletion steps below in C:\Deployment\ and all of its subdirectories. After each deletion, launch C:\Deployment\MyApp.exe and test it. If it stops working, restore the files you just deleted.

  1. Launch MyApp.exe. While it is running, try to delete all DLLs. The DLLs that aren't used will go to the recycle bin, leaving behind only the DLLs that you need. (This trick doesn't work for .qml and qmldir files, however).
  2. (If you used QML) Delete a few .qml files and try relaunching MyApp.exe. Repeat until you try all .qml files.
  3. (If you used QML) Delete qmldir files from the folders that have no more DLLs or .qml files
When you have removed all the files that you don't need,

  1. Rename C:\QtHidden\ back to C:\Qt\ to restore your installation.
  2. Distribute your app.
من هیچ روشی را تست نکردم. فقط اینها را زدم برای مرور اولیه.
Deploy an Application on Windows - Qt Wiki
 
آخرین ویرایش:

saalek110

Well-Known Member
bool QDesktopServices:: openUrl(const QUrl &url)
Opens the given url in the appropriate Web browser for the user's desktop environment

منبع

PHP:
#include <QDesktopServices>
#include <QUrl>


QDesktopServices::openUrl(QUrl("file:///D:/a1.html", QUrl::TolerantMode));

List of All Members for QDesktopServices
This is the complete list of members for QDesktopServices, including inherited members.

منبع
 

جدیدترین ارسال ها

بالا