QT Creator, Сигналы и слоты
#include <QInputDialog>
#include <QPushButton>
#include <QGridLayout>
int main(int argc, char *argv[]) //window::connect
{
QApplication app(argc, argv);
QPushButton *button1 = new QPushButton("1");
QPushButton *button2 = new QPushButton("2");
QPushButton *button3 = new QPushButton("3");
QPushButton *button4 = new QPushButton("4");
QPushButton *button5 = new QPushButton("5");
QPushButton *button6 = new QPushButton("6");
QPushButton *button7 = new QPushButton("7");
QPushButton *button8 = new QPushButton("8");
QPushButton *button9 = new QPushButton("9");
QWidget *window = new QWidget;
QGridLayout *layout = new QGridLayout;
QInputDialog *pq=new QInputDialog;
layout->addWidget(pq);
layout->addWidget(button1);
layout->addWidget(button2);
layout->addWidget(button3);
layout->addWidget(button4);
layout->addWidget(button5);
layout->addWidget(button6);
layout->addWidget(button7);
layout->addWidget(button8);
layout->addWidget(button9);
QObject :: connect (button1,SIGNAL(clicked()), button1,SLOT(showMenu ()));
window->setLayout(layout);
window->show();
return app.exec();
Ответы (1 шт):
Автор решения: BrainSwitch
→ Ссылка
Судя по всему код рабочий, просто не установлено меню
Попробуйте так:
#include "mainwindow.h"
#include <QApplication>
#include <QPushButton>
#include <QGridLayout>
#include <QInputDialog>
#include <QDebug>
#include <QAbstractButton>
#include <QMenu>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton *button1 = new QPushButton("1");
QMenu menu("menu");
menu.addAction("one");
menu.addAction("two");
button1->setMenu(&menu);
QPushButton *button2 = new QPushButton("2");
QPushButton *button3 = new QPushButton("3");
QPushButton *button4 = new QPushButton("4");
QPushButton *button5 = new QPushButton("5");
QPushButton *button6 = new QPushButton("6");
QPushButton *button7 = new QPushButton("7");
QPushButton *button8 = new QPushButton("8");
QPushButton *button9 = new QPushButton("9");
QWidget *window = new QWidget;
QGridLayout *layout = new QGridLayout;
QInputDialog *pq=new QInputDialog;
layout->addWidget(pq);
layout->addWidget(button1);
layout->addWidget(button2);
layout->addWidget(button3);
layout->addWidget(button4);
layout->addWidget(button5);
layout->addWidget(button6);
layout->addWidget(button7);
layout->addWidget(button8);
layout->addWidget(button9);
QObject :: connect (button2,SIGNAL(clicked()), button1,SLOT(showMenu()));
window->setLayout(layout);
window->show();
return app.exec();
}
P.S. Надо сказать что для показа меню не нужны слоты и сигналы