(C++) QtExample15

February 24, 2017 · View on GitHub

 

 

 

 

 

(C++) QtExample15

 

QtQt
CreatorLubuntuUbuntu

 

This Qt example shows how to create pop-up windows from pop-up windows, like this screenshot (png).

 

Technical facts

 

Application type(s)

Operating system(s) or programming environment(s)

IDE(s):

Project type:

C++ standard:

Compiler(s):

Libraries used:

  • Qt Qt: version 5.4.1 (32 bit)
  • STL STL: GNU ISO C++ Library, version 4.9.2

 

 

 

 

 

Qt project file: ./CppQtExample15/CppQtExample15.pro

 


exists(../../DesktopApplication.pri) {   include(../../DesktopApplication.pri) } !exists(../../DesktopApplication.pri) {   QT += core gui   greaterThan(QT_MAJOR_VERSION, 4): QT += widgets   TEMPLATE = app   CONFIG(debug, debug|release) {     message(Debug mode)   }   CONFIG(release, debug|release) {     message(Release mode)     DEFINES += NDEBUG NTRACE_BILDERBIKKEL   }   QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra   unix {     QMAKE_CXXFLAGS += -Werror   } } exists(../../Libraries/Boost.pri) {   include(../../Libraries/Boost.pri) } !exists(../../Libraries/Boost.pri) {   win32 {     INCLUDEPATH += \       ../../../Projects/Libraries/boost_1_55_0   } } SOURCES += main.cpp SOURCES  += mydialog.cpp HEADERS  += mydialog.h

 

 

 

 

 

./CppQtExample15/main.cpp

 


#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include <QApplication> #include "mydialog.h" #pragma GCC diagnostic pop int main(int argc, char *argv[]) {   QApplication a(argc, argv);   MyDialog w;   w.show();   return a.exec(); }

 

 

 

 

 

./CppQtExample15/mydialog.h

 


#ifndef MYDIALOG_H #define MYDIALOG_H #include <vector> #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include <boost/shared_ptr.hpp> #include <QDialog> #pragma GCC diagnostic pop struct QPushButton; struct QHBoxLayout; class MyDialog : public QDialog {   Q_OBJECT public:   MyDialog(const QString s = "");   const QString m_string; private:   boost::shared_ptr<QPushButton> m_button1;   boost::shared_ptr<QPushButton> m_button2;   std::vector<boost::shared_ptr<MyDialog> > m_children;   boost::shared_ptr<QHBoxLayout> m_layout; private slots:   void button1clicked();   void button2clicked(); }; #endif // MYDIALOG_H

 

 

 

 

 

./CppQtExample15/mydialog.cpp

 


#include "mydialog.h" #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #include <QPushButton> #include <QHBoxLayout> #pragma GCC diagnostic pop MyDialog::MyDialog(const QString s)   : m_string(s),   m_button1(new QPushButton),   m_button2(new QPushButton),   m_children{},   m_layout(new QHBoxLayout) {   m_button1->setText("Left");   m_button2->setText("Right");   m_layout->addWidget(m_button1.get());   m_layout->addWidget(m_button2.get());   this->setLayout(m_layout.get());   m_button1->connect(     m_button1.get(),SIGNAL(clicked()),     this,SLOT(button1clicked()));   m_button2->connect(     m_button2.get(),SIGNAL(clicked()),     this,SLOT(button2clicked()));   this->setWindowTitle(s); } void MyDialog::button1clicked() {   boost::shared_ptr<MyDialog> new_dialog(new MyDialog(m_string + "L"));   m_children.push_back(new_dialog);   new_dialog->setModal(true);   new_dialog->show(); } void MyDialog::button2clicked() {   boost::shared_ptr<MyDialog> new_dialog(new MyDialog(m_string + "R"));   m_children.push_back(new_dialog);   new_dialog->setModal(true);   new_dialog->show(); }