Seite 1 von 2

ListWidget Dateien Ausgeben

Verfasst: 3. April 2006 14:03
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 ?

Verfasst: 3. April 2006 15:54
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:

Verfasst: 3. April 2006 17:19
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.

Verfasst: 3. April 2006 18:01
von Esleborn
wie wäre es mit einem QDirModel in Verbindung mit einen QListView?

Verfasst: 4. April 2006 09:39
von Coca
hmm kann ich es nicht mit dem ListWidget garnicht ?
:shock:

Verfasst: 4. April 2006 12:56
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 :(

Verfasst: 4. April 2006 13:34
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.

Verfasst: 4. April 2006 13:41
von Coca
Aber ich kriege nichts im ListWidget ausgegeben

Verfasst: 4. April 2006 13:42
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.

Verfasst: 4. April 2006 14:08
von Coca
JA aber wie

Verfasst: 4. April 2006 14:44
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!!!

Verfasst: 4. April 2006 15:12
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.

Verfasst: 4. April 2006 15:50
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

Verfasst: 4. April 2006 16:01
von Coca
Sorry doch es Klappt ich hatte keine Datei .xsd im Ordner :lol: :lol: :lol:

Danke Shadow für deine Hilfe

Verfasst: 4. April 2006 16:08
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.