私はいくつかのテキスト入力フィールドを持つ新しいダイアログを作成しようとしています。これらのテキスト領域は、ボタンのクリック(確認)として(既存のメソッドを使用して)カスタムクラスベクトルに挿入する必要があります。カスタムクラスを渡す(シグナルとスロット)
私の疑問は、カスタムクラスを参照として渡すためにconnect関数をどのように適合させることができますか?私はこれで非常に初心者です、私の愚かさを許してください。 これは私のコードの一部です。
#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