Qt ट्यूटोरियल
Qt के साथ आरंभ करना
खोज…
टिप्पणियों
जैसा कि आधिकारिक दस्तावेज में कहा गया है, Qt डेस्कटॉप, एम्बेडेड और मोबाइल के लिए एक क्रॉस-प्लेटफॉर्म एप्लिकेशन डेवलपमेंट फ्रेमवर्क है। समर्थित प्लेटफार्मों में लिनक्स, ओएस एक्स, विंडोज, वीएक्सवर्क्स, क्यूएनएक्स, एंड्रॉइड, आईओएस, ब्लैकबेरी, सेलफ़िश ओएस और अन्य शामिल हैं।
यह अनुभाग Qt क्या है का एक सिंहावलोकन प्रदान करता है, और क्यों एक डेवलपर इसका उपयोग करना चाहता है।
यह Qt के भीतर किसी भी बड़े विषयों का उल्लेख करना चाहिए, और संबंधित विषयों के लिए लिंक करना चाहिए। चूंकि क्यूटी के लिए प्रलेखन नया है, इसलिए आपको उन संबंधित विषयों के प्रारंभिक संस्करण बनाने की आवश्यकता हो सकती है।
संस्करण
संस्करण | रिलीज़ की तारीख |
---|---|
क्यूटी 3.0 | 2001/10/16 |
क्यूटी 3.3 | 2004/02/05 |
Qt 4.1 | 2005/12/20 |
Qt 4.8 | 2011-12-15 |
क्यूटी 5.0 | 2012-12-19 |
Qt 5.6 | 2016/03/16 |
Qt 5.7 | 2016/06/16 |
क्यूटी 5.8 | 2017/01/23 |
क्यूटी 5.9 | 2017/05/31 |
विंडोज और लिनक्स पर इंस्टॉलेशन और सेटअप
लिनक्स ओपन सोर्स संस्करण के लिए क्यूटी डाउनलोड करें
Https://www.qt.io/download-open-source/ पर जाएं और डाउनलोड नाउ पर क्लिक करें, सुनिश्चित करें कि आप लिनक्स के लिए क्यूटी इंस्टॉलर डाउनलोड कर रहे हैं।
Qt-unified-linux-x-online.run नाम वाली एक फ़ाइल डाउनलोड की जाएगी, फिर निष्पादन अनुमति जोड़ें
chmod +x qt-unified-linux-x-online.run
इंस्टॉलर के वास्तविक संस्करण के लिए 'x' बदलना याद रखें। फिर इंस्टॉलर चलाएं
./qt-unified-linux-x-online.run
विंडोज ओपन सोर्स वर्जन के लिए क्यूटी डाउनलोड करें
Https://www.qt.io/download-open-source/ पर जाएं । निम्न स्क्रीनशॉट विंडोज पर डाउनलोड पेज दिखाता है:
अब आपको क्या करना चाहिए यह इस बात पर निर्भर करता है कि आप किस आईडीई का उपयोग करने जा रहे हैं। यदि आप क्यूटी क्रिएटर का उपयोग करने जा रहे हैं, जो इंस्टॉलर प्रोग्राम में शामिल है, तो बस अभी डाउनलोड करें पर क्लिक करें और निष्पादन योग्य चलाएं।
यदि आप दृश्य स्टूडियो में क्यूटी का उपयोग करने जा रहे हैं, तो सामान्य रूप से डाउनलोड नाउ बटन भी काम करना चाहिए। सुनिश्चित करें कि डाउनलोड की गई फ़ाइल qt-filesource-windows-x86-msvc2015_64-xxx.exe या qt-filesource-windows-x86-msvc2015_32-xxx.exe (जहां xxx Qt का संस्करण है, उदाहरण के लिए 5.7.0)। अगर ऐसा नहीं है, तो सभी डाउनलोड देखें पर क्लिक करें और विंडोज होस्ट के तहत पहले चार विकल्पों में से एक का चयन करें।
यदि आप कोड :: ब्लॉक में क्यूटी का उपयोग करने जा रहे हैं, तो सभी डाउनलोड देखें पर क्लिक करें और विंडोज होस्ट के तहत विंडोज 32-बिट (मिनग डब्ल्यूएक्स, 1.2 जीबी) के लिए क्यूटी एक्सएक्सएक्स का चयन करें।
उपयुक्त इंस्टॉलर फ़ाइल डाउनलोड करने के बाद, निष्पादन योग्य चलाएं और नीचे दिए गए निर्देशों का पालन करें। ध्यान दें कि Qt को स्थापित करने के लिए आपको एक व्यवस्थापक होने की आवश्यकता है। यदि आप एक व्यवस्थापक नहीं हैं, तो आप यहां कई वैकल्पिक समाधान पा सकते हैं।
किसी भी ऑपरेटिव सिस्टम में क्यूटी स्थापित करें
एक बार जब आपने Qt को डाउनलोड कर लिया और इंस्टॉलर प्रोग्राम को खोल दिया, तो इंस्टॉलेशन प्रक्रिया सभी ऑपरेटिव सिस्टम के लिए समान है, हालाँकि स्क्रीनशॉट कुछ अलग दिख सकते हैं। यहां दिए गए स्क्रीनशॉट लिनक्स से हैं।
मौजूदा क्यूटी खाते के साथ लॉगिन करें या एक नया बनाएं:
क्यूटी पुस्तकालयों और उपकरणों को स्थापित करने के लिए एक पथ का चयन करें
लायब्रेरी संस्करण और इच्छित सुविधाएँ चुनें
डाउनलोड करने और इंस्टॉलेशन समाप्त होने के बाद, क्यूटी इंस्टॉलेशन डायरेक्टरी पर जाएं और क्यूटी क्रिएटर को लॉन्च करें या सीधे कमांड लाइन से चलाएं।
नमस्ते दुनिया
इस उदाहरण में, हम बस डेस्कटॉप पर एक विंडो फ्रेम में एक पुश बटन बनाते हैं और दिखाते हैं। पुश बटन में लेबल होगा Hello world!
यह सबसे सरल संभव क्यूटी कार्यक्रम का प्रतिनिधित्व करता है।
सबसे पहले हमें एक परियोजना फ़ाइल चाहिए:
helloworld.pro
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = helloworld
TEMPLATE = app
SOURCES += main.cpp
- क्यूटी का उपयोग यह इंगित करने के लिए किया जाता है कि इस परियोजना में किन पुस्तकालयों (क्यूटी मॉड्यूल) का उपयोग किया जा रहा है। चूंकि हमारा पहला ऐप एक छोटा GUI है, हमें QtCore और QtGui की आवश्यकता होगी। Qt5 QtGui से QtWidgets को अलग करने के लिए,
greaterThan
साथ इसे संकलित करने के लिएgreaterThan
लाइन जोड़ने की आवश्यकता है। - TARGET ऐप या लाइब्रेरी का नाम है।
- TEMPLATE बनाने के प्रकार का वर्णन करता है। यह एक एप्लिकेशन (ऐप), एक पुस्तकालय (एफबीआई), या बस उपनिर्देशिका (उपखंड) हो सकता है।
- स्रोत स्रोत कोड फ़ाइलों की एक सूची है जिसका उपयोग प्रोजेक्ट बनाते समय किया जाता है।
हमें Qt एप्लिकेशन वाले main.cpp की भी आवश्यकता है:
main.cpp
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton button ("Hello world!");
button.show();
return a.exec(); // .exec starts QApplication and related GUI, this line starts 'event loop'
}
- QApplication ऑब्जेक्ट। यह ऑब्जेक्ट एप्लिकेशन-वाइड संसाधनों का प्रबंधन करता है और किसी भी Qt प्रोग्राम को चलाने के लिए आवश्यक है जिसमें GUI है। यह argv और args की जरूरत है क्योंकि Qt कुछ कमांड लाइन तर्कों को स्वीकार करता है।
a.exec()
कॉलिंग करते समय Qt इवेंट लूप लॉन्च किया जाता है। - QPushButton ऑब्जेक्ट। लेबल
Hello world!
साथ पुश बटनHello world!
। अगली पंक्ति,button.show()
, अपने स्वयं के विंडो फ़्रेम में स्क्रीन पर पुश बटन दिखाती है।
अंत में, एप्लिकेशन को चलाने के लिए, कमांड प्रॉम्प्ट खोलें, और उस निर्देशिका को दर्ज करें जिसमें आपके पास प्रोग्राम की .cpp फ़ाइल है। प्रोग्राम बनाने के लिए निम्न शेल कमांड टाइप करें।
qmake -project
qmake
make
QtCreator और QtDesigner के साथ बुनियादी अनुप्रयोग
QtCreator, इस समय, Qt एप्लिकेशन बनाने के लिए सबसे अच्छा उपकरण है। इस उदाहरण में, हम देखेंगे कि एक सरल क्यूटी एप्लिकेशन कैसे बनाया जाए जो एक बटन का प्रबंधन करता है और पाठ लिखता है।
नया एप्लिकेशन बनाने के लिए फ़ाइल-> नई फ़ाइल या प्रोजेक्ट पर क्लिक करें:
फिर प्रोजेक्ट्स-> एप्लीकेशन-> क्यूटी विजेट एप्लिकेशन चुनें
फिर आप अपने प्रोजेक्ट का नाम और रास्ता चुन सकते हैं:
इसके बाद, आप उन किटों को चुन सकते हैं जिनका आप उपयोग कर रहे हैं। यदि आपके पास कोई किट नहीं है, तो QtCreator आपके Qt संस्करण और आपके कंप्यूटर के मुख्य संकलक के साथ एक किट बनाएगा। यदि आपके पास कोई कंपाइलर नहीं है, तो आप एक इंस्टॉल कर सकते हैं। Windows पर: Visual Studio स्थापित करें। Linux / Mac पर: g ++ या clang ++ इंस्टॉल करें।
फिर आप अपने मुख्य विंडो क्लास का नाम, विरासत में मिला क्लास, अपने मुख्य विंडो क्लास के अनुरूप फाइल का नाम चुन सकते हैं। यदि आप Qt सीख रहे हैं या परीक्षण कर रहे हैं, तो आपको वास्तव में उन्हें बदलने की आवश्यकता नहीं है।
अंतिम चरण इस परियोजना के एक उपप्रोजेक्ट को चुनने और एक संस्करण नियंत्रण जैसे कि गिट और svn को जोड़ने के लिए हो सकता है। फिर अगर यह केवल परीक्षणों के लिए है, तो आपको उन्हें बदलने की आवश्यकता नहीं है।
इसके बाद फिनिश बटन पर क्लिक करें। अब आपको यहाँ होना चाहिए:
यह आपके आवेदन का आधार है। यदि आप इसे अब बिल्ड-> रन या ctrl + R पर क्लिक करके चलाते हैं (डिफ़ॉल्ट रूप से) तो आपको एक खाली विंडो दिखाई देगी।
अब हम एक टेक्स्ट और एक बटन जोड़ेंगे। ऐसा करने के लिए, हम Qt डिज़ाइनर का उपयोग करेंगे। Mainwindow.ui पर डबल क्लिक करें। अब आपको देखना चाहिए: (यदि नहीं और आप कुछ xml फ़ाइल देखते हैं, तो बाईं ओर डिज़ाइन बटन पर क्लिक करें)
यहाँ क्यूटी डिजाइनर! काफी जटिल लगता है। लेकिन एक बार जब आप इसकी आदत डाल लेते हैं, तो यह वास्तव में बहुत अच्छा है। हम कुछ टेक्स्ट और एक बटन जोड़ेंगे। बाईं ओर, आइटम की सूची है। आप एक पर क्लिक करें और वस्तुओं को खींचें और छोड़ें। पुश बटन पर क्लिक करें और इसे विंडो में छोड़ दें। फिर लेबल खोजें, और वही करें (आपके पास ऊपर बाईं ओर एक फ़िल्टर है जहाँ आप उस ऑब्जेक्ट को लिख सकते हैं जिसे आप खोज रहे हैं)।
अब आपके पास कुछ ऐसा होना चाहिए:
ऑब्जेक्ट पर डबल क्लिक करके, आप उन पर टेक्स्ट बदल सकते हैं। या आप नीचे दाईं ओर देख सकते हैं कि आप अभी जिस ऑब्जेक्ट के गुण हैं और टेक्स्ट प्रॉपर्टी ढूंढ सकते हैं। यहां आप नाम भी बदल सकते हैं।
अब यदि आप सहेजते हैं और चलाते हैं (संपादन बटन पर बेहतर क्लिक करें तो फिर से सुनिश्चित करें कि आपके संशोधन सहेज लिए गए हैं), आपको मिलता है:
है ना? जब मैं चलता हूं तो मेरा लेबल और बटन ऐसा क्यों है? ऐसा इसलिए है क्योंकि हमारी केंद्रीय वस्तु में कोई लेआउट नहीं है। वैसे, यदि आप अपनी मुख्य विंडो का आकार बदलते हैं, तो आप देख सकते हैं कि ऑब्जेक्ट अपनी जगह बनाए हुए है। तो इसे ठीक करने के लिए हम एक लेआउट जोड़ेंगे। एक ऊर्ध्वाधर लेआउट कहते हैं। तो बाईं ओर ऑब्जेक्ट सूची से एक ऊर्ध्वाधर लेआउट खींचें और छोड़ें। अब आपको देखना चाहिए:
एक अस्थायी लेआउट।
इसलिए अब लेबल और बटन को छोड़कर कहीं भी मुख्य विंडो पर राइट क्लिक करें। c \ _ ले आउट पर क्लिक करें-> वर्टिकल रूप से ले आउट। अब आपको यह देखना चाहिए कि आपकी वस्तुएँ आपकी खिड़की में एक लंबवत संरेखित हैं। इसलिए अब लेआउट में अपने लेबल और बटन को (ड्रैग एंड ड्रॉप के साथ) मूव करें। अब आपको मिलना चाहिए:
अपने डिजाइनर में। और अगर आप आवेदन चलाते हैं:
यहां आप अपने एप्लिकेशन को लेबल और बटन के साथ देख सकते हैं। और अगर आप अपनी विंडो का आकार बदलते हैं, तो लेबल और बटन भी आकार बदल रहे हैं।
लेकिन हमारा बटन अभी भी कुछ नहीं कर रहा है। हम इसे 2 अलग-अलग तरीकों से बदल सकते हैं। सबसे पहले बटन को हमारे द्वारा बनाई गई विधि से जोड़ना है। हम इसे विधि नाम कनेक्ट के साथ कर सकते हैं। तो चलिए अपने कोड पर वापस आते हैं और mainwindow.cpp पर जाते हैं:
connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(whenButtonIsClicked()));
अपने MainWindow के निर्माण में ui->setupUI(this);
जो ui को इनिशियलाइज़ करता है।
तब हम MainWindow बना सकते हैं :: जब हमारे .cpp वर्ग में ButtonIsClicked () हो सकता है जो लेबल के पाठ को इस तरह बदल सकता है:
void MainWindow::whenButtonIsClicked()
{
ui->label->setText("the button has been clicked !");
}
और हमारे mainwindow.h में, हमें जोड़ने की आवश्यकता है:
public slots:
void whenButtonIsClicked();
सार्वजनिक स्लॉट का मतलब है कि सिग्नल मिलने पर इस विधि को कॉल किया जा सकता है। जब हम बटन पर क्लिक करते हैं और कॉल करने के लिए एक विधि से लिंक को कनेक्ट करते हैं।
इसलिए अब अगर हम अपना एप्लिकेशन चलाते हैं और बटन पर क्लिक करते हैं, तो हमें यह मिलता है:
जिसका मतलब है कि हमारा कनेक्ट काम कर रहा है। लेकिन Qt डिज़ाइनर के साथ हमारे पास इसे करने का एक सरल तरीका भी है। यदि आप दूसरा तरीका करना चाहते हैं, तो बटन को हटाने के लिए कनेक्ट को हटा दें (क्योंकि हम इसे अलग तरीके से कनेक्ट करेंगे), मेनविंडो.यू पर वापस जाएं और बटन पर राइट क्लिक करें। गो टू स्लॉट ... पर क्लिक करें, क्लिक करें () और ओके दबाएं।
फिर आपको इस समारोह में जाना चाहिए:
void MainWindow::on_pushButton_clicked()
{
}
यह वह फ़ंक्शन है जिसे बटन पर क्लिक करने पर आपको कॉल किया जाएगा। तो आप जोड़ सकते हैं
ui->label->setText("it's even easier !");
इसे में। परिवर्तन को सहेजने के लिए mainwindow.h पर जाएं (जब आप स्लॉट पर जाते हैं, तो यह आपके द्वारा पूछे गए सिग्नल के साथ जुड़ा हुआ एक तरीका बनाता है। यह फ़ंक्शन को .h में परिभाषित करता है, लेकिन इसे सेव न करें। इसलिए आपको जाना चाहिए। फ़ाइल के लिए और इसे बचाने के लिए)।
और अब जब आप अपना एप्लिकेशन चलाते हैं और बटन दबाते हैं, तो आप नया संदेश देख सकते हैं (यदि आप अभी भी पुराने को देखते हैं, तो यह है कि आपने कनेक्ट नहीं हटाया था)।
हम अपने लेबल में QVariant
लिए एक int, double इत्यादि भी जोड़ सकते हैं, जो एक भयानक वर्ग है जो कई चीजों को कई अन्य चीजों में बदल सकता है। इसलिए बाईं ओर एक इंट जोड़ें जो बटन को पुश करने पर बढ़ता है।
तो .एच:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void whenButtonIsClicked();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
double _smallCounter;
};
#endif // MAINWINDOW_H
.Cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(whenButtonIsClicked()));
_smallCounter = 0.0f;
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::whenButtonIsClicked()
{
ui->label->setText("the button has been clicked !");
}
void MainWindow::on_pushButton_clicked()
{
_smallCounter += 0.5f;
ui->label->setText("it's even easier ! " + QVariant(_smallCounter).toString());
}
और अब, हम बचा सकते हैं और फिर से चला सकते हैं। हर बार जब आप बटन पर क्लिक करते हैं, तो यह _smallCounter के मूल्य के साथ "यह और भी आसान है!" तो आपके पास कुछ ऐसा होना चाहिए:
यह ट्यूटोरियल किया जाता है। यदि आप Qt के बारे में अधिक जानना चाहते हैं, तो देखते हैं कि StackOverflow प्रलेखन या Qt दस्तावेज़ीकरण पर Qt के अन्य उदाहरण और दस्तावेज देखें।