Irgendwie verstehe ich den sinn des konstruktors "Set(mainform* m) : m_mainform(m) {}" nicht..
hab das mal ausprobiert, kompiliert ohne fehler durch aber das programm stürtzt mit einem Segmantation Fault ab, wenn ich die klasse per button aufrufe:
settings.h:
Code:
#include <qsettings.h>
#include "tvtool.h"
class Set
{
QSettings* settings;
mainform* m_mainform;
//mainform* m;
int a;
public:
//Set();
//Set(mainform* m) : m_mainform(m) {}
void writechannel();
};
settings.cpp:
Code:
#include <qdir.h>
#include <qlineedit.h>
#include <qlistbox.h>
void Set::writechannel()
{
settings = new QSettings();
settings -> insertSearchPath( QSettings::Unix, QDir::homeDirPath() );
settings -> beginGroup( ".TVgrabTool" );
settings -> writeEntry( "/Channels/" + m_mainform->kanalname->text(), m_mainform->kanal_ID->text() );
//m = new mainform;
m_mainform->kanalliste->insertItem( m_mainform->kanalname->text(), -1);
delete settings;
}
So rufe ich die Klasse auf:
Code:
void mainform::kanal_add_clicked()
{
/*QSettings* settings;
settings = new QSettings();
settings -> insertSearchPath( QSettings::Unix, QDir::homeDirPath() );
settings -> beginGroup( ".TVgrabTool" );
settings -> writeEntry( "/Channels/" + kanalname->text(), kanal_ID -> text() );
kanalliste -> insertItem( kanalname->text(), -1);
delete settings;*/
Set wt;
wt.writechannel();
}
EDIT:
Hab mal das objekt m_mainform nicht als zeiger auf mainform gemacht.
Jetzt funktioniert die klasse soweit, das QSettings aufgerufen wird und die konfiguration geschrieben wird.
Nur
Code:
m_mainform->kanalliste->insertItem( m_mainform->kanalname->text(), -1);
funktioniert nicht...
Lesezeichen