[gelöst] QAssistant unter Windows

Alles rund um die Programmierung mit Qt
Antworten
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

[gelöst] QAssistant unter Windows

Beitrag von C_R »

Hi!

Ich benutze den QAssistant für eine User-Hilfe in meinem Programm. Unter Linux kompiliert das ganze auch (nach Kopieren der Exec). Unter Windows habe ich die assistant.exe ins Programmverzeichnis kopiert, der Makefile CONFIG += assistant hinzugefügt und bekomme in minGW den Fehler

"cannot find -lQtAssistantClientd"

Was habe ich falsch gemacht/ vergessen?

Danke für die etwaige Hilfe!
Zuletzt geändert von C_R am 11. September 2007 09:45, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Die Debug-Libs wurden nicht gebaut. Zumindest nicht für QtAssistant. Ist aber ein 'Standard-Problem' unter win32 -> Foren Suche!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

Nunja, ich hatte meine makefile so abgeändert, dass er den release ausspuckt. Beim Kompilieren gibt es auch keinerlei Fehler. Will ich nun den assistant über mein Programm aufrufen, passiert allerdings gar nichts.
Kennt jemand evtl. das Problem oder hat einen Tip?

Die Forensuche hat mir nicht wirklich weitergeholfen.
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

Kann mir niemand noch ein Tip geben? Ich bekomm es einfach nicht hin. :x
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Schonmal versucht das Problem zu debuggen?
Ggf. ein kleines Testprogramm für uns?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

Ich weiss nicht, wie ich das debuggen könnte - unter Linux funktioniert es ja einwandfrei, daher nehme ich an, alles ist richtig verbunden. Ich rufe ihn über einen Menü-Leisten-Eintrag auf, wie auch verschiedene Dialoge (die funktionieren). Also gebe ich dir ersteinmal den Code des erstellens - evtl. hapert es ja schon dort..



Code: Alles auswählen

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
	setWindowIcon(QIcon(":/res/icons/appicon.png")); // :/ Data saved as Qt Resource in icons.qrc file (rcc)
	setWindowTitle("GPS Satellite Prediction Tool");
 	setObjectName("mainWin"); // used to find the main window from everywhere within qt-objects (QT-Widget list)
	createMenuBar();
	createToolBar();
	createStatusBar();
	createCentralWidget();
	showMaximized();
	
	// built-in help center / online help /  onlinehilfe
	helpCenter = new QAssistantClient(QDir::currentPath() + QDir::convertSeparators("/") + QString("documentation"), this);
	QStringList assistantArgs;
	assistantArgs << "-profile" << "documentation/satPred.adp";
	helpCenter->setArguments(assistantArgs);
}
und bei Betätigen des entsprechenden Buttons wird das aufgerufen:

Code: Alles auswählen

void MainWindow::help()
{ // open the integrated help center
	helpCenter->openAssistant();
}
Ok.. ich debugge morgen, ob er help() aufruft..falls du/ihr nichts siehst/seht auf anhieb, melde ich mich morgen (habe nun Feierabend und muss den Bus erwischen :) ), ob ggf. ein Dialog dort aufgerufen werden kann.
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

Habe nun help() um
QMessageBox::warning(this,"","");
erweitert. Die Box wird auch aufgerufen, wie ich erwartet habe..
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Und die Debugausgabe sagt dir nichts (wie z.B. assistant.exe not found oder sowas in der Art)? Kannst Du mal in den funktionsaufruf openAssistant() reinsteppen und schauen was da passiert?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

Also ich habs "gefixt", sag ich mal..

helpCenter = new QAssistantClient(QDir::currentPath() + QDir::convertSeparators("/") + QString("documentation"), this);

habe ich mit

helpCenter = new QAssistantClient(QDir::currentPath(), this);

erstezt. Obwohl die assistant.exe in currentPath()/documentation auch liegt, konnt er die dort scheinbar nicht aufrufen. Aus dem Applikationsordner funkioniert es. oO Ist das eventuell eine Restriktion?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich würde sagen dass QDir::convertSeparators("/") ihm ggf. nicht gefällt - Qt-intern ist es immer '/' und nie '\\'. Ansonsten habe ich keine Idee
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

äh naja, habs nun endlich herausgefunden:

Da das Programm ja cross-plattform-tauglich sein soll, hatte ich sowohl die Linux

assistant

und die Windows

assistant.exe

In einem Ordner und Windows scheint das überhaupt nicht zu mögen. Löscht man die assistant (linux) bei der Windows-Version, klappts 1a.

Hat also nix mit den obigen Dingen (Ordner) zu tun..
Antworten