ListWidget Dateien Ausgeben

Alles rund um die Programmierung mit Qt
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

ListWidget Dateien Ausgeben

Beitrag von Coca »

Tach zusammen..

Habe Heute angefangen mit Qt zu arbeiten.
Habe Folgendes Problem.

Ich will in einem ListWidget Dateien anzeigen.
Der Pfad zu diesen Files ist in einer Ini geschrieben.

Code: Alles auswählen

void XmlTool::on_ActiveList_clicked(const QModelIndex &) //ListWidget
{
                QString inifile = "c:\\AutoCheck.ini";
	QString temp;

	QSettings settings( inifile, QSettings::IniFormat);
	
	settings.beginGroup("Directories");
	temp = settings.value("SchemaDir").toString();
}
Ok jetzt hab ich den Pfad aber wie gebe ich die dateien die indiesem ordner sind in einem ListWidget aus ?
Zuletzt geändert von Coca am 4. April 2006 12:00, insgesamt 2-mal geändert.
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

Leute ich sehe das das Thema schon 19mal aufgerufen worde !!
Ist meine Frage stellung nicht verständlich, die Informationen zu wenig oder könnt ihr mir nicht weiterhelfen ?

:shock:
Emperor_L0ser
Beiträge: 51
Registriert: 28. Juli 2005 12:26
Kontaktdaten:

Beitrag von Emperor_L0ser »

schau dir mal QDir an, da gibs ne funktion, die den ordnerinhalt anzeigt, in ner schleife wäre dies abarbeitbar zum anzeigen.
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

wie wäre es mit einem QDirModel in Verbindung mit einen QListView?
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

hmm kann ich es nicht mit dem ListWidget garnicht ?
:shock:
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

Der QListWidget soll mir aber auch nur die dateien anzeigen die die endung .xsd haben und die signiert sind. Also ein Beispiel
im Ordner ist die Datei "test.xsd" und "test.p7s" das heist "test.xsd" ist signiert weil es die Datei "test.p7s" gibt. Und der QListWidget soll mir nur die "test.xsd" anzeigen bzw alle .xsd Dateien die Signiert sind.

Hoffe Ihr könnt mir weiter Helfen komme seit Gestern nicht mehr weiter.

Ich habe es nicht mal geschaft überhaupt Dateien die in diesem Ordner sind Anzeigen zu lassen :(
Shadow
Beiträge: 92
Registriert: 27. August 2005 18:15
Wohnort: Iserlohn
Kontaktdaten:

Beitrag von Shadow »

Coca hat geschrieben:Der QListWidget soll mir aber auch nur die dateien anzeigen die die endung .xsd haben und die signiert sind. Also ein Beispiel
im Ordner ist die Datei "test.xsd" und "test.p7s" das heist "test.xsd" ist signiert weil es die Datei "test.p7s" gibt. Und der QListWidget soll mir nur die "test.xsd" anzeigen bzw alle .xsd Dateien die Signiert sind.

Hoffe Ihr könnt mir weiter Helfen komme seit Gestern nicht mehr weiter.

Ich habe es nicht mal geschaft überhaupt Dateien die in diesem Ordner sind Anzeigen zu lassen :(
Ein kleines Code-Snippet sollte ansatzsweise helfen:

Code: Alles auswählen

QDir testDir(qApp->applicationDirPath());
testDir.cd("test");
	
for (int i=0;i<testDir.entryList(QStringList("*.xsd")).count();i++) 
{
      QString fileName = testDir.entryList(QStringList("*.xsd")).at(i);
      QString filePath = testDir.absoluteFilePath(fileName);
}		
:idea: Ich empfehle Dir, Dich intensiv mit dem QT-Assistant auseinanderzusetzen.
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

Aber ich kriege nichts im ListWidget ausgegeben
Shadow
Beiträge: 92
Registriert: 27. August 2005 18:15
Wohnort: Iserlohn
Kontaktdaten:

Beitrag von Shadow »

Coca hat geschrieben:Aber ich kriege nichts im ListWidget ausgegeben
Das ListWidget solltest du schon selbst füllen, sonst bekommst du dort nichts.
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

JA aber wie
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

Das Programm Funktioniert so

Man Klickt auf den Button "Durchsuchen" um das Verzeichniss auszuwählen.

Code: Alles auswählen

void XmlTool::on_BtnBrowse_clicked()     //BUTTON DURCHSUCHEN
{
	QString temp;
	QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\....\\...\\...",QSettings::NativeFormat);
	
	temp = settings.value("....").toString();

	QString s = QFileDialog::getExistingDirectory(this,
					tr("Bitte Wählen Sie ein Verzeichniss"),
					temp,
                    QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);

}


Danach Soll der ListWidget mir Alle .xsd dateien die signiert sind von diesem Verzeichniss ausgeben.

Code: Alles auswählen


void XmlTool::on_InactiveList_clicked(const QModelIndex &)  //LISTWIDGET
{
QDir testDir(qApp->applicationDirPath()); 
	testDir.cd("test"); 
    
	for (int i=0;i<testDir.entryList(QStringList("*.xsd")).count();i++) 
	{ 
      QString fileName = testDir.entryList(QStringList("*.xsd")).at(i); 
      QString filePath = testDir.absoluteFilePath(fileName); 
	}   
}


So ist der Stand.
Ich weis nicht wie ich die Dateien im ListWidget ausgegeben wird.

Ich habe echt keine Ahnung. Das ist mein 2.Tag mit QT.
Hoffe ihr könnt mir weiter Helfen. Danke!!!
Shadow
Beiträge: 92
Registriert: 27. August 2005 18:15
Wohnort: Iserlohn
Kontaktdaten:

Beitrag von Shadow »

Coca hat geschrieben:
Danach Soll der ListWidget mir Alle .xsd dateien die signiert sind von diesem Verzeichniss ausgeben.

Code: Alles auswählen


void XmlTool::on_InactiveList_clicked(const QModelIndex &)  //LISTWIDGET
{
QDir testDir(qApp->applicationDirPath()); 
	testDir.cd("test"); 
    
	for (int i=0;i<testDir.entryList(QStringList("*.xsd")).count();i++) 
	{ 
      QString fileName = testDir.entryList(QStringList("*.xsd")).at(i); 
      QString filePath = testDir.absoluteFilePath(fileName); 
	}   
}


So ist der Stand.
Ich weis nicht wie ich die Dateien im ListWidget ausgegeben wird.

Ich habe echt keine Ahnung. Das ist mein 2.Tag mit QT.
Hoffe ihr könnt mir weiter Helfen. Danke!!!
Dann nimmst du den String "s" (am besten legst Du dazu eine Member-Variable in Deiner Klasse an), den du bereits eingelesen hast und verwendest ihn in meinem Codesnippet als Ausgangsverzeichnis, anstatt "qApp->applicationDirPath()", dass ja nur als Beispiel gedacht war.
Zudem läßt du bitte das "testDir.cd("test")" weg.

In der for-Schleife wird der komplette Verzeichnisinhalt eingelesen, den du dann direkt nach dem Setzen der Strings in der Schleife in das Listwidget über die Methode "addItem(fileName)" einfügen kannst, z.B. "listwidget->addItem(fileName)".

Sieh' dir mal die ganzen Beispiele an, die mit der QT-Bibliothek mitgeliefert werden.
Zuletzt geändert von Shadow am 4. April 2006 15:56, insgesamt 1-mal geändert.
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

Der Quellcode sieht so aus!!

Code: Alles auswählen

void XmlTool::on_BtnBrowse_clicked() //Durchsuchen Button
{
	QString temp;
	QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\...\\...\\...",QSettings::NativeFormat);
	
	temp = settings.value("...").toString();

	QString s = QFileDialog::getExistingDirectory(this,
					tr("Bitte Wählen Sie ein Verzeichniss"),
					temp,
                    QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks);
	
InactiveList(s);
}
				
void XmlTool::InactiveList( QString s) //ListWidget
{
	QDir testDir(s); 
	 
    
	for (int i=0;i<testDir.entryList(QStringList("*.xsd")).count();i++) 
	{ 
      QString fileName = testDir.entryList(QStringList("*.xsd")).at(i); 
      QString filePath = testDir.absoluteFilePath(fileName); 
	  ui.InactiveList->addItem(fileName);
	}
	

}

FehlerCode: keins

Aber ich sehe immer nocht nichts in der ListWidget
Coca
Beiträge: 42
Registriert: 3. April 2006 13:53
Kontaktdaten:

Beitrag von Coca »

Sorry doch es Klappt ich hatte keine Datei .xsd im Ordner :lol: :lol: :lol:

Danke Shadow für deine Hilfe
Shadow
Beiträge: 92
Registriert: 27. August 2005 18:15
Wohnort: Iserlohn
Kontaktdaten:

Beitrag von Shadow »

Coca hat geschrieben:

Code: Alles auswählen

void XmlTool::InactiveList( QString s) //ListWidget
{
	QDir testDir(s); 
	 
    
	for (int i=0;i<testDir.entryList(QStringList("*.xsd")).count();i++) 
	{ 
      QString fileName = testDir.entryList(QStringList("*.xsd")).at(i); 
      QString filePath = testDir.absoluteFilePath(fileName); 
	  ui.InactiveList->addItem(fileName);
	}
	

}

FehlerCode: keins
Aber ich sehe immer nocht nichts in der ListWidget
"ui.InactiveList" hört sich nicht so gut an. Existiert kein echtes Objekt von Deinem ListWidget?? Vermutlich lädst du die Strings ins Nirvana.
Antworten