Init-Datei schreiben

Alles rund um die Programmierung mit Qt
Antworten
binnio
Beiträge: 9
Registriert: 5. Juni 2010 13:08

Init-Datei schreiben

Beitrag von binnio »

Hallo liebe Qt Entwickler,

ich möchte für mein neues Qt Programm eine History erstellen welche dem User die Möglichkeit SQL-Verbindungen zu speichern und zu laden.

Im grunde handelt es sich um ein zweispalten Layout.

Links die Zugangsdaten (Host, Port, User, Passwort, etc) und rechts eine Liste der gespeicherten Verbindungen.

Da in einer Liste nur ein Text stehen kann habe ich mir ein Array meiner Klasse SQLManager angelegt. So kann ich erstmal mehrere Verbindungen hinterlegen und dem Listenelement mit dem Host füllen.
(d.h. auch das man nicht zwei Verbindungen zu 127.0.0.1 speichern kann -> ist gewollt)

Meine Frage ist nun, kann man in Qt die gesamte Variable SQLManager history[100] in eine Datei schreiben und dann wieder lesen ?

Zur Veranschaulichung meine SQLManager c und h:

Code: Alles auswählen

#ifndef SQLMANAGER_H
#define SQLMANAGER_H

#include <QMainWindow>
#include <QtGui>
#include <QtSql>

class SQLManager{
public:
    SQLManager();
    SQLManager(QString h, QString d, QString u, QString p, uint port);

    // copy constructor
    SQLManager(const SQLManager& orig);

    // GET & SET
    QSqlDatabase get_mDb() const{               return mDb;             }
    void set_mDb(const QSqlDatabase v){         mDb = v;                }
    QString get_mHost ( ) const {               return mHost;           }
    void set_mHost (const QString v ) {         mHost = v;              }
    QString get_mDatabasename ( ) const {       return mDatabasename;   }
    void set_mDatabasename (const QString v ) { mDatabasename = v;      }
    QString get_mUser ( ) const {               return mUser;           }
    void set_mUser (const QString v ) {         mUser = v;              }
    QString get_mPw ( ) const {                 return mPw;             }
    void set_mPw (const QString v ) {           mPw = v;                }
    uint get_mPort ( ) const {                  return mPort;           }
    void set_mPort (const uint v ) {            mPort = v;              }

    // Methoden
    bool connect();
    bool connect(QString h, QString d, QString u, QString p, uint port = 3306);
    bool disconnect();

    // Operators
    SQLManager& operator= (const SQLManager& v);

private:
    QSqlDatabase mDb;
    QString mHost;
    QString mDatabasename;
    QString mUser;
    QString mPw;
    uint mPort;
};

#endif // MSQLMANAGER_H

Code: Alles auswählen

#include <QMainWindow>
#include <QtGui>
#include <QtSql>
#include "SQLManager.h"


SQLManager::SQLManager(){
    mHost="";
    mDatabasename="";
    mUser="";
    mPw="";
}

SQLManager::SQLManager(QString h, QString d, QString u, QString p, uint port){
    mHost=h;
    mDatabasename=d;
    mUser=u;
    mPw=p;
    mPort=port;
}

SQLManager::SQLManager(const SQLManager& orig){
    this->operator =(orig);
}

bool SQLManager::connect(){
    return connect(mHost,mDatabasename,mUser,mPw,mPort);
}

bool SQLManager::connect(QString h, QString d, QString u, QString p, uint port){
    if(mDb.isOpen() == true)
        mDb.close();

    mDb = QSqlDatabase::addDatabase("QMYSQL");
    mDb.setHostName(h);
    mDb.setDatabaseName(d);
    mDb.setUserName(u);
    mDb.setPassword(p);
    mDb.setPort(port);

    if(!mDb.open()){
        return 0;
    }else
        return 1;
}

bool SQLManager::disconnect(){
    if(mDb.isOpen() == true){
        mDb.close();
        return 1;
    }else
        return 0;
}

SQLManager& SQLManager::operator= (const SQLManager& v) {
    this->mDb = v.get_mDb();
    this->mHost = v.get_mHost();
    this->mDatabasename = v.get_mDatabasename();
    this->mUser = v.get_mUser();
    this->mPw = v.get_mPw();
    this->mPort = v.get_mPort();

    return *this;
}
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Sicher kannst du das machen. Durch das Array iterieren und dann die einzelnen Werte in einen String packen und in die Datei schreiben (verwendest du QSettings dafür?)
Wo liegt dein konkretes Problem?
Kannst du vllt. noch einen Beispieleintrag zeigen, wie so eine einzelne Verbindung in der Datei stehen soll?
binnio
Beiträge: 9
Registriert: 5. Juni 2010 13:08

Beitrag von binnio »

Im grunde steht dann in meiner Liste:

192.168.1.1
192.168.1.2
etc.

meine H

Code: Alles auswählen

#ifndef SQL_DIA_H
#define SQL_DIA_H

#include <QDialog>
#include "SQLManager.h"

namespace Ui {
    class sql_dia;
}

class sql_dia : public QDialog {
    Q_OBJECT
public:
    sql_dia(QWidget *parent = 0);
    ~sql_dia();

    SQLManager get_SQLManager() const{
        return mSQLManager;
    }
    void set_SQLManager(const SQLManager v){
        mSQLManager = v;
        updateDia();
    }

protected:
    void changeEvent(QEvent *e);
    void updateDia();

private:
    Ui::sql_dia *ui;
    SQLManager mSQLManager;

    QMap<QString, SQLManager> history;
    QString filename;
    QFile file;


private slots:
    void on_pushButton_minus_clicked();
    void on_pushButton_plus_clicked();
    void lese_history();
    void schreibe_history();
    void updateData();
    void on_pushButton_test_clicked();
};

#endif // SQL_DIA_H
meine CPP

Code: Alles auswählen

#include "sql_dia.h"
#include "ui_sql_dia.h"

sql_dia::sql_dia(QWidget *parent) : QDialog(parent),ui(new Ui::sql_dia){
    ui->setupUi(this);

    //VARIABLEN
    filename = "config.inc";
    history["127.0.0.1"]=mSQLManager;


    //SIGNAL / SLOT
    QObject::connect( ui->lineEdit_host, SIGNAL( editingFinished() ),
                      this, SLOT( updateData() ) );
    QObject::connect( ui->spinBox_port, SIGNAL( editingFinished() ),
                      this, SLOT( updateData() ) );
    QObject::connect( ui->lineEdit_datenbankname, SIGNAL( editingFinished() ),
                      this, SLOT( updateData() ) );
    QObject::connect( ui->lineEdit_benutzer, SIGNAL( editingFinished() ),
                      this, SLOT( updateData() ) );
    QObject::connect( ui->lineEdit_passwort, SIGNAL( editingFinished() ),
                      this, SLOT( updateData() ) );

    //METHODEN
    lese_history();

}

sql_dia::~sql_dia(){
    schreibe_history();
    delete ui;
}

void sql_dia::changeEvent(QEvent *e){
    QDialog::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

void sql_dia::updateDia(){
    ui->lineEdit_host->setText(mSQLManager.get_mHost());
    ui->spinBox_port->setValue(mSQLManager.get_mPort());
    ui->lineEdit_datenbankname->setText(mSQLManager.get_mDatabasename());
    ui->lineEdit_benutzer->setText(mSQLManager.get_mUser());
    ui->lineEdit_passwort->setText(mSQLManager.get_mPw());
}

void sql_dia::updateData(){
    mSQLManager.set_mHost(ui->lineEdit_host->text());
    mSQLManager.set_mPort(ui->spinBox_port->value());
    mSQLManager.set_mDatabasename(ui->lineEdit_datenbankname->text());
    mSQLManager.set_mUser(ui->lineEdit_benutzer->text());
    mSQLManager.set_mPw(ui->lineEdit_passwort->text());

    //teste verbindung
    on_pushButton_test_clicked();
}

void sql_dia::on_pushButton_test_clicked(){
    //... wenn die Verbindung erfolgreich aufgebaut werden konnte aktualisiere Statustext(label)
    if(mSQLManager.connect()){
        ui->label_ergebnis_erg->setText(QString("Datenbank-Driver:").append(mSQLManager.get_mDb().driverName().append("\nVerbingung erfolgreich aufgebaut")));
    }else{
        ui->label_ergebnis_erg->setText(mSQLManager.get_mDb().lastError().driverText());
    }
}

void sql_dia::on_pushButton_plus_clicked(){
    if(history.find(ui->lineEdit_host->text()).key() == ui->lineEdit_host->text()){
        if (QMessageBox::warning(this, "Überschreiben", "Dieser Eintrag existiert bereits!\nMöchten Sie ihne überschreiben ?", QMessageBox::Yes | QMessageBox::No)==QMessageBox::Yes){
            history.value(ui->lineEdit_host->text()).set_mDatabasename(ui->lineEdit_datenbankname->text());
            history.value(ui->lineEdit_host->text()).set_mPort(ui->spinBox_port->text());
            history.value(ui->lineEdit_host->text()).set_mUser(ui->lineEdit_benutzer->text());
            history.value(ui->lineEdit_host->text()).set_mPw(ui->lineEdit_passwort->text());
        }
    }else{
        SQLManager temp_SQLManager = new SQLManager;
        temp_SQLManager.set_mDatabasename(ui->lineEdit_datenbankname->text());
        temp_SQLManager.set_mHost(ui->lineEdit_host->text());
        temp_SQLManager.set_mPort(ui->spinBox_port->text());
        temp_SQLManager.set_mUser(ui->lineEdit_benutzer->text());
        temp_SQLManager.set_mPw(ui->lineEdit_passwort->text());

        history.insert(ui->lineEdit_host->text(), mSQLManager);
    }

    ui->listWidget_history->clear();
    if(history.count()!=0){

        //for(int i=0;i<history.size();i++){
        //    ui->listWidget_history->addItem(history.key());
        //}
        QMapIterator<QString, SQLManager> it(history);
        while(it.next()){
            it.next();
            ui->listWidget_history->addItem(it.key());
            qDebug()<<it.key();
            qDebug()<<it.value();
        }
    }
}

void sql_dia::on_pushButton_minus_clicked(){
    history[ui->listWidget_history->currentItem()].set_mHost(ui->listWidget_history->currentItem()->text());

    updateDia();
}

void sql_dia::lese_history(){
    if(!filename.isEmpty()){
        file.setFileName(filename);
        if(file.open(QIODevice::ReadWrite)){
            ui->label->setText("Datei erfolgreich geladen");
        }else{
            file.write(filename.toAscii());
            ui->label->setText("Datei erfolgreich erstellt");
        }
    }else
        ui->label->setText(QString("Es ist ein Fehler beim laden/anlegen der Datei aufgetreten\n").append(file.errorString()));
}


void sql_dia::schreibe_history(){
    if(!filename.isEmpty()){
        file.setFileName(filename);
        if(file.open(QIODevice::WriteOnly)){
            QDataStream stream (&file);
            //for(int i=0; i<100;i++){
            //    stream << "[" << i << "]\n" << history[i].get_mDatabasename() << "#" << history[i].get_mHost() << "#" << history[i].get_mPort() << "#" << history[i].get_mPw() << "#" << history[i].get_mUser() << endl;
            //}
            ui->label->setText("Datei erfolgreich geschrieben");
        }else{
            file.write(filename.toAscii());
            ui->label->setText("Datei erfolgreich erstellt und geschrieben");
        }
    }else
        ui->label->setText(QString("Es ist ein Fehler beim schreiben/erstellen der Datei aufgetreten\n").append(file.errorString()));
}
ich habe mal den versuch gestartet mit QMap die Liste zu managen.
Leider bekomme ich lauter Fehler:

Code: Alles auswählen

Führe Build-Schritte für Projekt rsit aus...
Konfiguration unverändert, überspringe QMake-Schritt.
Starte: /usr/bin/make -w 
make: Gehe in Verzeichnis '/home/binio/rsit'
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_SQL_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I/usr/X11R6/include -I. -I. -o sql_dia.o sql_dia.cpp
sql_dia.cpp: In member function ‘void sql_dia::on_pushButton_plus_clicked()’:
sql_dia.cpp:76: error: passing ‘const SQLManager’ as ‘this’ argument of ‘void SQLManager::set_mDatabasename(QString)’ discards qualifiers
sql_dia.cpp:77: error: no matching function for call to ‘SQLManager::set_mPort(QString) const’
SQLManager.h:28: note: candidates are: void SQLManager::set_mPort(uint)
sql_dia.cpp:78: error: passing ‘const SQLManager’ as ‘this’ argument of ‘void SQLManager::set_mUser(QString)’ discards qualifiers
sql_dia.cpp:79: error: passing ‘const SQLManager’ as ‘this’ argument of ‘void SQLManager::set_mPw(QString)’ discards qualifiers
sql_dia.cpp:82: error: conversion from ‘SQLManager*’ to non-scalar type ‘SQLManager’ requested
sql_dia.cpp:85: error: no matching function for call to ‘SQLManager::set_mPort(QString)’
SQLManager.h:28: note: candidates are: void SQLManager::set_mPort(uint)
/usr/include/qt4/QtCore/qmap.h:343: error: ‘QMap<Key, T>::const_iterator::operator bool() const [with Key = QString, T = SQLManager]’ is private
sql_dia.cpp:99: error: within this context
sql_dia.cpp:103: error: no match for ‘operator<<’ in ‘qDebug()() << it.QMapIterator<Key, T>::value [with Key = QString, T = SQLManager]()’
/usr/include/qt4/QtCore/qdebug.h:95: note: candidates are: QDebug& QDebug::operator<<(QChar)
/usr/include/qt4/QtCore/qdebug.h:96: note: QDebug& QDebug::operator<<(QBool)
/usr/include/qt4/QtCore/qdebug.h:97: note: QDebug& QDebug::operator<<(bool)
/usr/include/qt4/QtCore/qdebug.h:98: note: QDebug& QDebug::operator<<(char)
/usr/include/qt4/QtCore/qdebug.h:99: note: QDebug& QDebug::operator<<(short int)
/usr/include/qt4/QtCore/qdebug.h:100: note: QDebug& QDebug::operator<<(short unsigned int)
/usr/include/qt4/QtCore/qdebug.h:101: note: QDebug& QDebug::operator<<(int)
/usr/include/qt4/QtCore/qdebug.h:102: note: QDebug& QDebug::operator<<(unsigned int)
/usr/include/qt4/QtCore/qdebug.h:103: note: QDebug& QDebug::operator<<(long int)
/usr/include/qt4/QtCore/qdebug.h:104: note: QDebug& QDebug::operator<<(long unsigned int)
/usr/include/qt4/QtCore/qdebug.h:105: note: QDebug& QDebug::operator<<(qint64)
/usr/include/qt4/QtCore/qdebug.h:107: note: QDebug& QDebug::operator<<(quint64)
/usr/include/qt4/QtCore/qdebug.h:109: note: QDebug& QDebug::operator<<(float)
/usr/include/qt4/QtCore/qdebug.h:110: note: QDebug& QDebug::operator<<(double)
/usr/include/qt4/QtCore/qdebug.h:111: note: QDebug& QDebug::operator<<(const char*)
/usr/include/qt4/QtCore/qdebug.h:112: note: QDebug& QDebug::operator<<(const QString&)
/usr/include/qt4/QtCore/qdebug.h:113: note: QDebug& QDebug::operator<<(const QStringRef&)
/usr/include/qt4/QtCore/qdebug.h:114: note: QDebug& QDebug::operator<<(const QLatin1String&)
/usr/include/qt4/QtCore/qdebug.h:115: note: QDebug& QDebug::operator<<(const QByteArray&)
/usr/include/qt4/QtCore/qdebug.h:116: note: QDebug& QDebug::operator<<(const void*)
/usr/include/qt4/QtCore/qdebug.h:117: note: QDebug& QDebug::operator<<(QTextStream& (*)(QTextStream&))
/usr/include/qt4/QtCore/qdebug.h:122: note: QDebug& QDebug::operator<<(QTextStreamManipulator)
/usr/include/qt4/QtCore/qchar.h:389: note: QDataStream& operator<<(QDataStream&, const QChar&)
/usr/include/qt4/QtCore/qbytearray.h:576: note: QDataStream& operator<<(QDataStream&, const QByteArray&)
/usr/include/qt4/QtCore/qstring.h:1069: note: QDataStream& operator<<(QDataStream&, const QString&)
/usr/include/qt4/QtCore/qobject.h:488: note: QDebug operator<<(QDebug, const QObject*)
/usr/include/qt4/QtCore/qmargins.h:140: note: QDebug operator<<(QDebug, const QMargins&)
/usr/include/qt4/QtCore/qsize.h:102: note: QDataStream& operator<<(QDataStream&, const QSize&)
/usr/include/qt4/QtCore/qsize.h:198: note: QDebug operator<<(QDebug, const QSize&)
/usr/include/qt4/QtCore/qsize.h:255: note: QDataStream& operator<<(QDataStream&, const QSizeF&)
/usr/include/qt4/QtCore/qsize.h:361: note: QDebug operator<<(QDebug, const QSizeF&)
/usr/include/qt4/QtCore/qpoint.h:103: note: QDataStream& operator<<(QDataStream&, const QPoint&)
/usr/include/qt4/QtCore/qpoint.h:181: note: QDebug operator<<(QDebug, const QPoint&)
/usr/include/qt4/QtCore/qpoint.h:237: note: QDataStream& operator<<(QDataStream&, const QPointF&)
/usr/include/qt4/QtCore/qpoint.h:356: note: QDebug operator<<(QDebug, const QPointF&)
/usr/include/qt4/QtCore/qrect.h:199: note: QDataStream& operator<<(QDataStream&, const QRect&)
/usr/include/qt4/QtCore/qrect.h:507: note: QDebug operator<<(QDebug, const QRect&)
/usr/include/qt4/QtCore/qrect.h:621: note: QDataStream& operator<<(QDataStream&, const QRectF&)
/usr/include/qt4/QtCore/qrect.h:851: note: QDebug operator<<(QDebug, const QRectF&)
/usr/include/qt4/QtCore/qiodevice.h:247: note: QDebug operator<<(QDebug, QFlags<QIODevice::OpenModeFlag>)
/usr/include/qt4/QtCore/qregexp.h:154: note: QDataStream& operator<<(QDataStream&, const QRegExp&)
/usr/include/qt4/QtCore/qstringlist.h:249: note: QDataStream& operator<<(QDataStream&, const QStringList&)
/usr/include/qt4/QtGui/qcolor.h:60: note: QDebug operator<<(QDebug, const QColor&)
/usr/include/qt4/QtGui/qcolor.h:271: note: QDataStream& operator<<(QDataStream&, const QColor&)
/usr/include/qt4/QtGui/qpolygon.h:100: note: QDebug operator<<(QDebug, const QPolygon&)
/usr/include/qt4/QtGui/qpolygon.h:107: note: QDataStream& operator<<(QDataStream&, const QPolygon&)
/usr/include/qt4/QtGui/qpolygon.h:165: note: QDebug operator<<(QDebug, const QPolygonF&)
/usr/include/qt4/QtGui/qpolygon.h:172: note: QDataStream& operator<<(QDataStream&, const QPolygonF&)
/usr/include/qt4/QtGui/qregion.h:223: note: QDataStream& operator<<(QDataStream&, const QRegion&)
/usr/include/qt4/QtGui/qregion.h:228: note: QDebug operator<<(QDebug, const QRegion&)
/usr/include/qt4/QtCore/qline.h:201: note: QDebug operator<<(QDebug, const QLine&)
/usr/include/qt4/QtCore/qline.h:205: note: QDataStream& operator<<(QDataStream&, const QLine&)
/usr/include/qt4/QtCore/qline.h:412: note: QDebug operator<<(QDebug, const QLineF&)
/usr/include/qt4/QtCore/qline.h:416: note: QDataStream& operator<<(QDataStream&, const QLineF&)
/usr/include/qt4/QtGui/qmatrix.h:188: note: QDataStream& operator<<(QDataStream&, const QMatrix&)
/usr/include/qt4/QtGui/qmatrix.h:193: note: QDebug operator<<(QDebug, const QMatrix&)
/usr/include/qt4/QtGui/qpainterpath.h:255: note: QDataStream& operator<<(QDataStream&, const QPainterPath&)
/usr/include/qt4/QtGui/qpainterpath.h:421: note: QDebug operator<<(QDebug, const QPainterPath&)
/usr/include/qt4/QtGui/qtransform.h:355: note: QDataStream& operator<<(QDataStream&, const QTransform&)
/usr/include/qt4/QtGui/qtransform.h:360: note: QDebug operator<<(QDebug, const QTransform&)
/usr/include/qt4/QtGui/qimage.h:348: note: QDataStream& operator<<(QDataStream&, const QImage&)
/usr/include/qt4/QtGui/qpixmap.h:313: note: QDataStream& operator<<(QDataStream&, const QPixmap&)
/usr/include/qt4/QtGui/qbrush.h:160: note: QDataStream& operator<<(QDataStream&, const QBrush&)
/usr/include/qt4/QtGui/qbrush.h:165: note: QDebug operator<<(QDebug, const QBrush&)
/usr/include/qt4/QtGui/qpalette.h:254: note: QDataStream& operator<<(QDataStream&, const QPalette&)
/usr/include/qt4/QtGui/qfont.h:346: note: QDataStream& operator<<(QDataStream&, const QFont&)
/usr/include/qt4/QtGui/qfont.h:351: note: QDebug operator<<(QDebug, const QFont&)
/usr/include/qt4/QtGui/qsizepolicy.h:220: note: QDataStream& operator<<(QDataStream&, const QSizePolicy&)
/usr/include/qt4/QtGui/qcursor.h:166: note: QDataStream& operator<<(QDataStream&, const QCursor&)
/usr/include/qt4/QtGui/qkeysequence.h:201: note: QDataStream& operator<<(QDataStream&, const QKeySequence&)
/usr/include/qt4/QtGui/qkeysequence.h:215: note: QDebug operator<<(QDebug, const QKeySequence&)
/usr/include/qt4/QtGui/qicon.h:142: note: QDataStream& operator<<(QDataStream&, const QIcon&)
/usr/include/qt4/QtCore/qdir.h:257: note: QDebug operator<<(QDebug, QFlags<QDir::Filter>)
/usr/include/qt4/QtCore/qdir.h:258: note: QDebug operator<<(QDebug, const QDir&)
/usr/include/qt4/QtCore/qlocale.h:668: note: QDataStream& operator<<(QDataStream&, const QLocale&)
/usr/include/qt4/QtCore/qtextstream.h:290: note: QTextStream& operator<<(QTextStream&, QTextStream& (*)(QTextStream&))
/usr/include/qt4/QtCore/qtextstream.h:293: note: QTextStream& operator<<(QTextStream&, QTextStreamManipulator)
/usr/include/qt4/QtCore/qvariant.h:605: note: QDebug operator<<(QDebug, const QVariant&)
/usr/include/qt4/QtCore/qvariant.h:530: note: QDataStream& operator<<(QDataStream&, const QVariant&)
/usr/include/qt4/QtCore/qvariant.h:532: note: QDataStream& operator<<(QDataStream&, QVariant::Type)
/usr/include/qt4/QtCore/qvariant.h:606: note: QDebug operator<<(QDebug, QVariant::Type)
/usr/include/qt4/QtCore/qurl.h:276: note: QDataStream& operator<<(QDataStream&, const QUrl&)
/usr/include/qt4/QtCore/qurl.h:281: note: QDebug operator<<(QDebug, const QUrl&)
/usr/include/qt4/QtCore/qbitarray.h:163: note: QDataStream& operator<<(QDataStream&, const QBitArray&)
/usr/include/qt4/QtCore/qdatetime.h:316: note: QDataStream& operator<<(QDataStream&, const QDate&)
/usr/include/qt4/QtCore/qdatetime.h:318: note: QDataStream& operator<<(QDataStream&, const QTime&)
/usr/include/qt4/QtCore/qdatetime.h:320: note: QDataStream& operator<<(QDataStream&, const QDateTime&)
/usr/include/qt4/QtCore/qdatetime.h:325: note: QDebug operator<<(QDebug, const QDate&)
/usr/include/qt4/QtCore/qdatetime.h:326: note: QDebug operator<<(QDebug, const QTime&)
/usr/include/qt4/QtCore/qdatetime.h:327: note: QDebug operator<<(QDebug, const QDateTime&)
/usr/include/qt4/QtCore/qeasingcurve.h:107: note: QDebug operator<<(QDebug, const QEasingCurve&)
/usr/include/qt4/QtCore/qabstractitemmodel.h:102: note: QDebug operator<<(QDebug, const QModelIndex&)
/usr/include/qt4/QtCore/qabstractitemmodel.h:148: note: QDebug operator<<(QDebug, const QPersistentModelIndex&)
/usr/include/qt4/QtCore/quuid.h:182: note: QDataStream& operator<<(QDataStream&, const QUuid&)
/usr/include/qt4/QtGui/qpicture.h:189: note: QDataStream& operator<<(QDataStream&, const QPicture&)
/usr/include/qt4/QtGui/qstyle.h:881: note: QDebug operator<<(QDebug, QFlags<QStyle::StateFlag>)
/usr/include/qt4/QtGui/qstyleoption.h:961: note: QDebug operator<<(QDebug, const QStyleOption::OptionType&)
/usr/include/qt4/QtGui/qstyleoption.h:962: note: QDebug operator<<(QDebug, const QStyleOption&)
/usr/include/qt4/QtGui/qpen.h:120: note: QDataStream& operator<<(QDataStream&, const QPen&)
/usr/include/qt4/QtGui/qpen.h:133: note: QDebug operator<<(QDebug, const QPen&)
/usr/include/qt4/QtGui/qtextformat.h:117: note: QDataStream& operator<<(QDataStream&, const QTextLength&)
/usr/include/qt4/QtGui/qtextformat.h:358: note: QDataStream& operator<<(QDataStream&, const QTextFormat&)
/usr/include/qt4/QtGui/qevent.h:721: note: QDebug operator<<(QDebug, const QEvent*)
/usr/include/qt4/QtGui/qsplitter.h:152: note: QTextStream& operator<<(QTextStream&, const QSplitter&)
/usr/include/qt4/QtGui/qgraphicsitem.h:1126: note: QDebug operator<<(QDebug, QGraphicsItem*)
/usr/include/qt4/QtGui/qgraphicsitem.h:1127: note: QDebug operator<<(QDebug, QGraphicsObject*)
/usr/include/qt4/QtGui/qgraphicsitem.h:1128: note: QDebug operator<<(QDebug, QGraphicsItem::GraphicsItemChange)
/usr/include/qt4/QtGui/qgraphicsitem.h:1129: note: QDebug operator<<(QDebug, QGraphicsItem::GraphicsItemFlag)
/usr/include/qt4/QtGui/qgraphicsitem.h:1130: note: QDebug operator<<(QDebug, QFlags<QGraphicsItem::GraphicsItemFlag>)
/usr/include/qt4/QtGui/qvector3d.h:270: note: QDebug operator<<(QDebug, const QVector3D&)
/usr/include/qt4/QtGui/qvector3d.h:274: note: QDataStream& operator<<(QDataStream&, const QVector3D&)
/usr/include/qt4/QtGui/qvector4d.h:275: note: QDebug operator<<(QDebug, const QVector4D&)
/usr/include/qt4/QtGui/qvector4d.h:279: note: QDataStream& operator<<(QDataStream&, const QVector4D&)
/usr/include/qt4/QtGui/qquaternion.h:314: note: QDebug operator<<(QDebug, const QQuaternion&)
/usr/include/qt4/QtGui/qquaternion.h:318: note: QDataStream& operator<<(QDataStream&, const QQuaternion&)
/usr/include/qt4/QtGui/qmatrix4x4.h:985: note: QDebug operator<<(QDebug, const QMatrix4x4&)
/usr/include/qt4/QtGui/qmatrix4x4.h:989: note: QDataStream& operator<<(QDataStream&, const QMatrix4x4&)
/usr/include/qt4/QtGui/qvector2d.h:246: note: QDebug operator<<(QDebug, const QVector2D&)
/usr/include/qt4/QtGui/qvector2d.h:250: note: QDataStream& operator<<(QDataStream&, const QVector2D&)
/usr/include/qt4/QtGui/qitemselectionmodel.h:220: note: QDebug operator<<(QDebug, const QItemSelectionRange&)
/usr/include/qt4/QtGui/qlistwidget.h:196: note: QDataStream& operator<<(QDataStream&, const QListWidgetItem&)
/usr/include/qt4/QtGui/qstandarditemmodel.h:447: note: QDataStream& operator<<(QDataStream&, const QStandardItem&)
/usr/include/qt4/QtGui/qtablewidget.h:215: note: QDataStream& operator<<(QDataStream&, const QTableWidgetItem&)
/usr/include/qt4/QtGui/qtreewidget.h:254: note: QDataStream& operator<<(QDataStream&, const QTreeWidgetItem&)
/usr/include/qt4/QtSql/qsqldatabase.h:154: note: QDebug operator<<(QDebug, const QSqlDatabase&)
/usr/include/qt4/QtSql/qsqlerror.h:97: note: QDebug operator<<(QDebug, const QSqlError&)
/usr/include/qt4/QtSql/qsqlfield.h:112: note: QDebug operator<<(QDebug, const QSqlField&)
/usr/include/qt4/QtSql/qsqlrecord.h:116: note: QDebug operator<<(QDebug, const QSqlRecord&)
sql_dia.cpp: In member function ‘void sql_dia::on_pushButton_minus_clicked()’:
sql_dia.cpp:109: error: no match for ‘operator[]’ in ‘((sql_dia*)this)->sql_dia::history[((sql_dia*)this)->sql_dia::ui->Ui::sql_dia::<anonymous>.Ui_sql_dia::listWidget_history->QListWidget::currentItem()]’
/usr/include/qt4/QtCore/qmap.h:502: note: candidates are: T& QMap<Key, T>::operator[](const Key&) [with Key = QString, T = SQLManager]
/usr/include/qt4/QtCore/qmap.h:496: note: const T QMap<Key, T>::operator[](const Key&) const [with Key = QString, T = SQLManager]
make: *** [sql_dia.o] Fehler 1
make: Verlasse Verzeichnis '/home/binio/rsit'
Beendet mit Rückgabewert 2.
Fehler beim Erstellen des Projekts rsit
Beim Ausführen des Build-Schritts 'Make'
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Was ist an

Code: Alles auswählen

sql_dia.cpp:76: error: passing ‘const SQLManager’ as ‘this’ argument of ‘void SQLManager::set_mDatabasename(QString)’ discards qualifiers 
nicht zu verstehen?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Diese Zeile

Code: Alles auswählen

SQLManager temp_SQLManager = new SQLManager;
sollte eh nicht kompilieren.
Antworten