Seite 1 von 1
bytesWritten ( qint64 bytes ) Signal löst bei mir nichts aus
Verfasst: 17. September 2009 22:03
von Tom_Tom
Hi Leute, kann mir mal jemand erklären, was ich tun muss, damit bei mir das Signal bytesWritten ( qint64 bytes ) ausgelöst wird?
Ich habe z.B. folgenden Code:
Code: Alles auswählen
QFile file(this->fileName);
QTextStream outStream(&file);
connect(&file, SIGNAL(bytesWritten ( qint64 )), this, SIGNAL(signal_bytesWritten( qint64 )));
if (file.open(QIODevice::WriteOnly)) {
outStream << this->xmlByteArray;
file.close();
}
Aber es funktioniert irgendwie nicht.
Vilden Dank schonmal =)
Verfasst: 18. September 2009 10:00
von Exasperation
Code: Alles auswählen
connect( m_close_button, SIGNAL(clicked()), this, SLOT(quit()) );
Unterschied zwischen deinem und meinem connect?
Verfasst: 18. September 2009 10:08
von Tom_Tom
Unterschied, dass du an einen SLOT schickst und ich an einem weiteren SIGNAL ???
Ist aber egal, das zweite SIGNAL wird ja dann mit nem SLOT verbunden.
Und das kann QT eigentlich. Da passiert auch nichts, wenn ich dort mit nem SLOT arbeite.
Das Problem ist, dass er das bytesWritten() - Signal vom QIODevice irgendwie nicht auslöst.
Verfasst: 18. September 2009 20:53
von upsala
Unlike other QIODevice implementations, such as QTcpSocket, QFile does not emit the aboutToClose(), bytesWritten(), or readyRead() signals. This implementation detail means that QFile is not suitable for reading and writing certain types of files, such as device files on Unix platforms.
@Exasperation: Du verbindest mit einem Button, er mit einem QFile?
Verfasst: 20. September 2009 11:22
von Tom_Tom
@upsala: Danke für das Zitat. Aber wo hast du das gefunden? Habe das bei mir im Assistenten nicht finden können.
Und hast du evtl. eine Idee, wie ich das anders lösen kann?
Verfasst: 20. September 2009 18:48
von upsala
http://doc.trolltech.com/4.5/qfile.html#signals
Ich würde mal von QFile ableiten und versuchen
Code: Alles auswählen
qint64 QIODevice::writeData ( const char * data, qint64 maxSize )
zu überladen und danach selbst ein Signal zu senden.
Verfasst: 21. September 2009 07:45
von Exasperation
upsala hat geschrieben:Unlike other QIODevice implementations, such as QTcpSocket, QFile does not emit the aboutToClose(), bytesWritten(), or readyRead() signals. This implementation detail means that QFile is not suitable for reading and writing certain types of files, such as device files on Unix platforms.
@Exasperation: Du verbindest mit einem Button, er mit einem QFile?
Ne ich meinte dass ich direkt SIGNALS mit SLOTS verbinde... Da geh ich auf Nummer sicher, weil ich im Slot wieder was emiten kann...