Go back to Richel Bilderbeek's homepage.

Go back to Richel Bilderbeek's C++ page.

 

 

 

 

 

(C++) QMenuExample1

 

Technical facts

 

Application type(s)

Operating system(s) or programming environment(s)

IDE(s):

Project type:

C++ standard:

Compiler(s):

Libraries used:

 

 

 

 

 

Qt project file: ./CppQMenuExample1/CppQMenuExample1.pro

 

QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra -Weffc++

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
}

SOURCES += \
    main.cpp \
    qmenuexample1widget.cpp

HEADERS += \
    qmenuexample1widget.h

 

 

 

 

 

./CppQMenuExample1/main.cpp

 

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include <QApplication>
#include "qmenuexample1widget.h"
#pragma GCC diagnostic pop

int main(int argc, char *argv[])
{
  QApplication a(argc, argv);
  QMenuExample1Widget w;
  w.show();
  return a.exec();
}

 

 

 

 

 

./CppQMenuExample1/qmenuexample1widget.h

 

#ifndef QMENUEXAMPLE1WIDGET_H
#define QMENUEXAMPLE1WIDGET_H

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include <QWidget>
#pragma GCC diagnostic pop

class QMenuExample1Widget : public QWidget
{
  Q_OBJECT
public:
  explicit QMenuExample1Widget(QWidget *parent = 0);

signals:

public slots:

private slots:
  void OnShowPopUpMenu(const QPoint& pos);
  void OnClickPopUpMenu();

};

#endif // QMENUEXAMPLE1WIDGET_H

 

 

 

 

 

./CppQMenuExample1/qmenuexample1widget.cpp

 

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Weffc++"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#include "qmenuexample1widget.h"

#include <QMenu>
#pragma GCC diagnostic pop


QMenuExample1Widget::QMenuExample1Widget(QWidget *parent)
  : QWidget(parent)
{
  ///Too bad, does not work :-(
  setContextMenuPolicy(Qt::CustomContextMenu);
  QObject::connect(this,SIGNAL(customContextMenuRequested(QPoint)),this, SLOT(ShowPopUpMenu(const QPoint&)));
}

void QMenuExample1Widget::OnClickPopUpMenu()
{
  this->setWindowTitle("Clicked");
}

void QMenuExample1Widget::OnShowPopUpMenu(const QPoint& pos)
{
  QMenu * const menu = new QMenu;
  menu->addAction(tr("Test Item"), this, SLOT(OnClickPopUpMenu()));

  menu->exec(this->mapToGlobal(pos));
}

 

 

 

 

 

Go back to Richel Bilderbeek's C++ page.

Go back to Richel Bilderbeek's homepage.

 

Valid XHTML 1.0 Strict

This page has been created by the tool CodeToHtml