खोज…


टिप्पणियों

QDialog क्लास डायलॉग विंडो का बेस क्लास है। संवाद विंडो एक शीर्ष-स्तरीय विंडो है, जिसका उपयोग उपयोगकर्ता के साथ अल्पकालिक कार्यों और संक्षिप्त संचार के लिए किया जाता है। QDialogs मोडल या मोडहीन हो सकता है।

ध्यान दें कि QDialog (और कोई अन्य विजेट जिसमें Qt :: Dialog टाइप किया गया है) Qt में अन्य वर्गों से थोड़ा अलग पैरेंट विजेट का उपयोग करता है। एक संवाद हमेशा एक शीर्ष-स्तरीय विजेट होता है , लेकिन यदि इसका कोई अभिभावक होता है, तो इसका डिफ़ॉल्ट स्थान माता-पिता के शीर्ष-स्तरीय विजेट के शीर्ष पर केंद्रित होता है (यदि यह स्वयं शीर्ष-स्तर नहीं है)। यह माता-पिता की टास्कबार प्रविष्टि भी साझा करेगा।

एक मोडल डायलॉग एक डायलॉग है जो उसी एप्लिकेशन में अन्य दृश्यमान विंडो के इनपुट को ब्लॉक करता है। उपयोगकर्ता से फ़ाइल नाम का अनुरोध करने के लिए उपयोग किए जाने वाले संवाद या अनुप्रयोग प्राथमिकताएँ सेट करने के लिए उपयोग किए जाने वाले आमतौर पर मोडल होते हैं। संवाद अनुप्रयोग मोडल (डिफ़ॉल्ट) या विंडो मोडल हो सकते हैं

एक मोडल संवाद प्रदर्शित करने का सबसे आम तरीका है इसके निष्पादन () फ़ंक्शन को कॉल करना। जब उपयोगकर्ता संवाद बंद कर देता है, तो निष्पादन () एक उपयोगी रिटर्न मूल्य प्रदान करेगा।

एक मॉडल संवाद एक संवाद है जो एक ही अनुप्रयोग में अन्य विंडो से स्वतंत्र रूप से संचालित होता है। मॉडल संवाद डायलॉग () का उपयोग करके प्रदर्शित किए जाते हैं, जो कॉल करने वाले को तुरंत नियंत्रण प्रदान करता है।

MyCompareFileDialog.h

#ifndef MYCOMPAREFILEDIALOG_H
#define MYCOMPAREFILEDIALOG_H

#include <QtWidgets/QDialog>

class MyCompareFileDialog : public QDialog
{
    Q_OBJECT

public:
    MyCompareFileDialog(QWidget *parent = 0);
    ~MyCompareFileDialog();
};


#endif // MYCOMPAREFILEDIALOG_H

MyCompareFileDialogDialog.cpp

#include "MyCompareFileDialog.h"
#include <QLabel>

MyCompareFileDialog::MyCompareFileDialog(QWidget *parent)
: QDialog(parent)
{
    setWindowTitle("Compare Files");
    setWindowFlags(Qt::Dialog);
    setWindowModality(Qt::WindowModal);

    resize(300, 100);
    QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
    setSizePolicy(sizePolicy);
    setMinimumSize(QSize(300, 100));
    setMaximumSize(QSize(300, 100));

    QLabel* myLabel = new QLabel(this);
    myLabel->setText("My Dialog!");
}

MyCompareFileDialog::~MyCompareFileDialog()
{ }

MainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MyCompareFileDialog;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    MyCompareFileDialog* myDialog;
};

#endif // MAINWINDOW_H

MainWindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "mycomparefiledialog.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    myDialog = new MyCompareFileDialog(this);

    connect(ui->pushButton,SIGNAL(clicked()),myDialog,SLOT(exec()));
}

MainWindow::~MainWindow()
{
    delete ui;
}

main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

mainwindow.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>400</width>
    <height>300</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralWidget">
   <widget class="QPushButton" name="pushButton">
    <property name="geometry">
     <rect>
      <x>140</x>
      <y>80</y>
      <width>111</width>
      <height>23</height>
     </rect>
    </property>
    <property name="text">
     <string>Show My Dialog</string>
    </property>
   </widget>
  </widget>
  <widget class="QMenuBar" name="menuBar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>400</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QToolBar" name="mainToolBar">
   <attribute name="toolBarArea">
    <enum>TopToolBarArea</enum>
   </attribute>
   <attribute name="toolBarBreak">
    <bool>false</bool>
   </attribute>
  </widget>
  <widget class="QStatusBar" name="statusBar"/>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <resources/>
 <connections/>
</ui>


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow