Я пытаюсь создать новый диалог с некоторыми текстовыми полями ввода. Эти текстовые области при нажатии кнопки (в качестве подтверждения) должны быть вставлены в пользовательский вектор класса (через существующие методы).Передача пользовательского класса для подключения (сигналы и слот)
Мое сомнение в том, как я могу подобрать функцию соединения, чтобы передать пользовательский класс в качестве ссылки? Я очень новичок в этом, пожалуйста, простите мою немоту. Это (часть) моего кода.
#include "aggiungi.h"
#include "ui_aggiungi.h"
aggiungi::aggiungi(clienti& c, QWidget *parent) :
QDialog(parent),
ui(new Ui::aggiungi)
{
ui->setupUi(this);
connect(ui->inserisci,SIGNAL(clicked()),this,SLOT(pulsanteInserisci(c)));
}
aggiungi::~aggiungi()
{
delete ui;
}
void aggiungi::pulsanteInserisci(clienti& c) {
string nome = ui->textNome->toPlainText().toStdString();
unsigned int cc = ui->textCod->toPlainText().toUInt();
string piva = ui->textPIva->toPlainText().toStdString();
cliente* nc = new cliente(nome,cc,piva);
c.aggiungi(*nc);
}
Все, что я хочу, чтобы иметь возможность пройти «Clienti» объект для выполнения команд при нажатии на кнопку. Это решение (очевидно) не работает, но как я могу его исправить? Каково ваше предложение?
Я также вставить ошибку я получаю из выхода приложения:
QObject::connect: No such slot aggiungi::pulsanteInserisci(c)
in..\Progetto2016\git\database\aggiungi.cpp:9
QObject::connect: (sender name: 'inserisci')
QObject::connect: (receiver name: 'aggiungi')
Заранее спасибо
Вы используете старый синтаксис сигнала/слота. Используйте [новый синтаксис, введенный в Qt5] (https://wiki.qt.io/New_Signal_Slot_Syntax), и проблема здесь должна стать ясной. – MrEricSir
@MrEricSir из-за некоторых ограничений проекта. Мне нужно использовать Qt creator 4 и компилятор старой версии minGW 4.8.3, я не знаю, поддерживается ли новый синтаксис. – Mastarius