Error al inicializar form
-
Buenas tardes, no encuentro mi error, he probado con un proyecto en limpio y no me arroja este error, he comparado ambos y no encuentro diferencia.
El error de compilación que recibo es:
frmLogin.cpp:13: error: no matching function for call to 'Ui::FrmLogin::setupUi(FrmLogin*)'
ui->setupUi(this);
^
frmLogin.h#ifndef FRMLogin_H #define FRMLogin_H #include <QDialog> namespace Ui { class FrmLogin; } class FrmLogin : public QDialog { Q_OBJECT public: explicit FrmLogin(QWidget *parent = 0); ~FrmLogin(); signals: void botonesVisibles(bool); void botones1Visibles(bool); private slots: void on_pulsaGuardaNum_clicked(); private: Ui::FrmLogin *ui; public slots: //Botones teclado numerico void pulsa0(); void pulsa1(); void pulsa2(); void pulsa3(); void pulsa4(); void pulsa5(); void pulsa6(); void pulsa7(); void pulsa8(); void pulsa9(); void pulsaCLR(); void pulsaCerrar(); }; #endif // FRMLogin_H
frmLogin.cpp
#include "mainwindow.h" #include "frmLogin.h" #include "ui_frmLogin.h" #include <QMessageBox> //#include <iostream> //using namespace std; FrmLogin::FrmLogin(QWidget *parent) : QDialog(parent), ui(new Ui::FrmLogin) { ui->setupUi(this); //QMainWindow::showFullScreen(); //Muestro ventana en pantalla completa ui->LE_Password->setVisible(false);//Oculto cuadro de texto de password } FrmLogin::~FrmLogin() { delete ui; } void on_pulsaGuardaNum_clicked(){ int password = uiFrmLogin->LE_Password->text().toInt(); switch (password) { case 2725: MainWindow::nivelAcceso = 1; //Nivel Operador cout<<"nivel 1"<<endl; emit botonesVisibles(true);//Se emite la señal al pulsar en boton para ocultar botones tiempos y ajustes emit botones1Visibles(false);//Se emite la señal al pulsar en boton para ocultar botones crear ficheros de presets FrmLogin::close(); //delete ui; break; case 70272: MainWindow::nivelAcceso = 2; //Nivel Tecnico cout<<"nivel 2"<<endl; emit botonesVisibles(true);//Se emite la señal al pulsar en boton para ocultar botones tiempos y ajustes emit botones1Visibles(true);//Se emite la señal al pulsar en boton para ocultar botones crear ficheros de presets FrmLogin::close(); //delete Ui_FrmLogin; break; default: MainWindow::nivelAcceso = 0; //Nivel Usuario cout<<"nivel 0 - ERROR"<<endl; emit botonesVisibles(false);//Se emite la señal al pulsar en boton para ocultar botones tiempos y ajustes emit botones1Visibles(false);//Se emite la señal al pulsar en boton para ocultar botones crear ficheros de presets //ui->PB_Password->setText(""); //ui->LE_Password->setText(""); QMessageBox::warning(this,"ERROR","Clave erronea"); break; } } void FrmLogin::pulsaCLR(){ ui->LE_Password->setText(""); ui->PB_Password->setText(""); } void FrmLogin::pulsaCerrar(){ MainWindow::nivelAcceso = 0; //ui->PB_Password->setText(""); //ui->LE_Password->setText(""); //MainWindow::->BT_Ajustes->setVisible(false); //ui->BT_Tiempos->setVisible(false); //ui->BT_Genera_preset1->setVisible(false); //ui->BT_Genera_preset_a->setVisible(false); FrmLogin::close(); //delete ui; } void FrmLogin::pulsa0(){ ui->LE_Password->setText(ui->LE_Password->text() + "0"); ui->PB_Password->setText(ui->PB_Password->text() + "*"); } void FrmLogin::pulsa1(){ ui->LE_Password->setText(ui->LE_Password->text() + "1"); ui->PB_Password->setText(ui->PB_Password->text() + "*"); } void FrmLogin::pulsa2(){ ui->LE_Password->setText(ui->LE_Password->text() + "2"); ui->PB_Password->setText(ui->PB_Password->text() + "*"); } void FrmLogin::pulsa3(){ ui->LE_Password->setText(ui->LE_Password->text() + "3"); ui->PB_Password->setText(ui->PB_Password->text() + "*"); } void FrmLogin::pulsa4(){ ui->LE_Password->setText(ui->LE_Password->text() + "4"); ui->PB_Password->setText(ui->PB_Password->text() + "*"); } void FrmLogin::pulsa5(){ ui->LE_Password->setText(ui->LE_Password->text() + "5"); ui->PB_Password->setText(ui->PB_Password->text() + "*"); } void FrmLogin::pulsa6(){ ui->LE_Password->setText(ui->LE_Password->text() + "6"); ui->PB_Password->setText(ui->PB_Password->text() + "*"); } void FrmLogin::pulsa7(){ ui->LE_Password->setText(ui->LE_Password->text() + "7"); ui->PB_Password->setText(ui->PB_Password->text() + "*"); } void FrmLogin::pulsa8(){ ui->LE_Password->setText(ui->LE_Password->text() + "8"); ui->PB_Password->setText(ui->PB_Password->text() + "*"); } void FrmLogin::pulsa9(){ ui->LE_Password->setText(ui->LE_Password->text() + "9"); ui->PB_Password->setText(ui->PB_Password->text() + "*"); }
El error me lo marca en el frmLogin.cp en la linea 13 (ui->setupUi(this);)
A ver si vosotros veis algo porque yo por más que busco no encuentro el porqué del fallo.
Muchas gracias y un saludo. -
Ya encontré el problema, lo dejo aqui por si le pasa a alguien más.
El error ocurrió porque en Qt Creator cambié frmLogin de QMainWindow a QDialog, pero en Qt Designer que fue donde lo cree en principio no estaba cambiado, por lo que el fichero frmLogin.ui seguía indicando que la clase era un QMainWindow.Solución, cambiar en frmLogin.ui al inicio la clase a QDialog.