Declaração variavel
-
Senhores, boa noite. Uma dúvida de principiante no C++/QT, onde inicializar uma variável que é utilizada em dois métodos, na forma que coloco no código abaixo, dá o seguinte erro : mainwindow.cpp:51: error: 'databasePath' was not declared in this scope str = databasePath;
INÍCIO DO CÓDIGO E CRIAÇÃO DA VARIAVEL databasePath
#include "mainwindow.h"
...MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);QString databasePath = "";
...
MÉTODO QUE ESTÁ HAVENDO O ERRO
void MainWindow::on_pushButton_clicked()
{
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
QMessageBox mb;
QSqlDatabase myDB = QSqlDatabase::addDatabase("QSQLITE");
if( !myDB.isValid() )
{
// This shows a message Box if Database Connection Fails.
QString str;str = databasePath; //// ERRO AQUI
Tentei colocar a criação da variável antes do construtor, porém apresentou outros erros.
...
QString databasePath = "";
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
...Estou tentando executar este exemplo : http://qt-project.org/forums/viewthread/29855
-
Rodrigo, como disse sou principiante e a variável não está declarada no mainwindow.h, onde é que informo ela ?
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{
Q_OBJECTpublic:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();private slots:
void on_pushButton_clicked();private:
Ui::MainWindow *ui;
};#endif // MAINWINDOW_H
-
declarando a variável databasePath em mainwindow.h em public
QString *databasePath;
Agora está apresentando esta mensagem de erro : invalid conversion from 'QString*' to 'char' [-fpermissive], nesta linha abaixo.
str = databasePath;
se str também é QString o que poderia fazer ?
-
Legal TioRoy foi em cima, parece que está mais perto que longe agora. embora tenha dado outro errinho, vou procurar a solução :
C:\desenvolvimento\c\projetos\sqlite\acesso\main.cpp:7: error: undefined reference to `MainWindow::~MainWindow()'
Gostaria de enviar o projeto, caso alguém precise de um exemplo, alguém teria alguma sugestão ?
-
TioRoy, desculpe minha ignorância, ainda estou aprendendo. tenho dois .cpp's o main.cpp e mainwindow.cpp, de qual eu deverei tirar ?
main.cpp está assim :
int main(int argc, char argv[])
{ QApplication a(argc, argv);
MainWindow w = new MainWindow();
w->show();
return a.exec();
}o meu mainwindow.h está assim :
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{
Q_OBJECTpublic:
explicit MainWindow(QWidget *parent = 0);
QString databasePath;
QString tmpString;
QString str;
~MainWindow();private slots:
void on_pushButton_clicked();private:
Ui::MainWindow *ui;
};#endif // MAINWINDOW_H
-
Valeu TioRoy, não conhecia esta do arroba.
Apresentou este erro agora, preciso fazer alguma alteração no main.ccp ?
C:\desenvolvimento\c\projetos\sqlite\acesso\main.cpp:10: error: undefined reference to `MainWindow::MainWindow(QWidget*)'
@
int main(int argc, char argv[])
{
QApplication a(argc, argv);
MainWindow w = new MainWindow(); // ERRO AQUI
w->show();
return a.exec();
}
@