Seite 1 von 1
[gelöst] QMessageBox muss ich 2 mal bestätigen
Verfasst: 20. Oktober 2005 15:09
von imbiss
Erst mal ein dickes lob an dieses forum.
Nun meine frage
Die Messagebox funktioniert, aber ich muss 2 mal auf OK clicken bis sie sich wieder schließt.
Ist das normal oder kann man es auch auf 1 mal clicken begrenzen.
MFG
Verfasst: 20. Oktober 2005 15:11
von FlorianBecker
Das ist beinahe nicht möglich. Ich denke da eher daran, dass die MessageBox auch 2mal ausgeführt wird. Poste mal bitte das Code Segment dazu.
Verfasst: 20. Oktober 2005 15:21
von imbiss
QString temp = lineEdit6->text();
QString temp1 = lineEdit5->text();
if (temp1 != temp) {
QMessageBox::warning( this, "ERROR",
"text \n"
"text." );
Verfasst: 20. Oktober 2005 15:33
von FlorianBecker
Äh, ok, das reicht leider nicht. Wie rufst du das denn auf? Mit textChanged() oder irgendeinem anderen SLOT?
Verfasst: 20. Oktober 2005 15:40
von imbiss
sorry
void test1::testSlot()
{
QString temp = lineEdit6->text();
QString temp1 = lineEdit5->text();
if (temp1 != temp) {
QMessageBox::warning( this, "ERROR",
"text \n"
"text." );
}
Verfasst: 20. Oktober 2005 15:47
von macman
Bei Qt4 gibt es zumindest einen bekannten
Bug, durch den ein Signal doppelt gesendet wird. Ich habe es auch schon mal, bei dynamisch erstellten Connects, geschafft, das ich eine Meldung immer öfter wegklicken mußte. Es kann also vieles sein, da muß schon mehr Code her.
Verfasst: 20. Oktober 2005 15:56
von FlorianBecker
Ok, damit nehme ich einmal an, dass es ein SLOT ist, und wie genau, bzw. wann genau wird denn jetzt dieser SLOT aufgerufen? Poste mal bitte den ganzen Rest und mache den Code vielleicht auch in so [code][/code] Tags, damit er lesbar bleibt.
Verfasst: 20. Oktober 2005 16:00
von imbiss
*****************************************************************************/
#include <qvariant.h>
#include <qwidget.h>
#include <qfile.h>
#include <qtextstream.h>
#include <qtextedit.h>
#include <qcombobox.h>
#include <qprocess.h>
#include <qstring.h>
#include <qobject.h>
#include <qprocess.h>
#include <qmessagebox.h>
void test1::testSlot()
{
QString temp = lineEdit6->text();
QString temp1 = lineEdit5->text();
if (temp1 != temp) {
QMessageBox::warning( this, "ERROR",
"text \n"
"text." );
} else {
QProcess *process = new QProcess(this);
process->addArgument("ls");
process->addArgument("-l");
process->addArgument("/etc");
process->addArgument(temp);
process->start();
QByteArray data = process->readStdout();
QString text = lineEdit4->text() + QString(data);
lineEdit4->setText(text);
QFile f ("/temp/test.txt");
QTextStream textStream (&f);
f.open

O_WriteOnly);
textStream << (text );
f.close ();
}
}
Verfasst: 20. Oktober 2005 16:02
von FlorianBecker
Ja, gut das ist der restliche Code vom SLOT selbst. Aber wie wird denn der SLOT nun aufgerufen? Da du zwei Eingabefelder hast, nehme ich an, dass er bei dem ersten und bei dem zweiten Eingabefeld jeweils eine Prüfung macht, was dann eine Erklärung wäre, warum die MessageBox zweimal kommt.
Verfasst: 20. Oktober 2005 16:03
von imbiss
benutze Qt 3.3.4
Verfasst: 20. Oktober 2005 16:04
von Goos
*lol*

Das is ja mal wieder ein Klasse Thread *amuesier*
Sorry imbiss, nix gegen Dich, aber du musst vor dem Posten besser lesen
Goos
Verfasst: 20. Oktober 2005 16:09
von imbiss
oh man bin ich naja danke mal wieder für den hinweis hatte den connect 2 mal.
tut mir echt leid um eure zeit, ihr seit echt toll.
MFG
Verfasst: 20. Oktober 2005 16:10
von imbiss
ok gelobe besserung