Portál AbcLinuxu, 16. července 2025 05:19


Dotaz: qt4/c++ nefungujici quit()

4.7.2010 20:03 Mr.S1lent.cz
qt4/c++ nefungujici quit()
Přečteno: 188×
Odpovědět | Admin
Zdravim, snazim se prijit, proc mi nefunguje slot "quit()", ale marne - pri kliknuti na "cancel" se nic nestane :-/

//protected variables in header file:
        QWidget *dialog_err;
        QLabel *text;
        QDialogButtonBox *button;
        QDesktopWidget *desktop;

//////////////////////////////////////////////////////
//cpp file:
#include "DialogErrorClass.h"

DialogErrorClass::DialogErrorClass( QWidget *parent ) : QWidget(parent) {

    desktop = QApplication::desktop();

    // create window
    dialog_err = new QWidget;
    dialog_err->setObjectName( QString::fromUtf8( "DialogError" ) );
    dialog_err->move( ( ( desktop->width() - 420 ) / 2 ), ( ( desktop->height() - 93 ) / 2 ) );
    dialog_err->setWindowTitle( QApplication::translate( "DialogError", "Chyba programu", 0, QApplication::UnicodeUTF8 ) );

    //label text error message
    text = new QLabel( dialog_err );
    text->setObjectName( QString::fromUtf8( "errorMsg" ) );
    text->setGeometry( QRect( 10, 10, 400, 21 ) );
    text->setStyleSheet(QString::fromUtf8("align: right;"));

    // close button
    button = new QDialogButtonBox( QDialogButtonBox::Cancel, Qt::Horizontal, dialog_err );
    button->setObjectName( QString::fromUtf8( "closeButton" ) );
    button->setGeometry( QRect( 169, 51, 81, 32 ) );
}

void DialogErrorClass::setMessage( const char *msg ) {
    text->setText( QApplication::translate( "errorMsg", (char*)msg, 0, QApplication::UnicodeUTF8 ) );

}

void DialogErrorClass::show() {
    connect( button, SIGNAL( accepted() ), qApp, SLOT( quit() ) );
    dialog_err->show();
}

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.7.2010 21:15 Dan542
Rozbalit Rozbalit vše Re: qt4/c++ nefungujici quit()
Odpovědět | | Sbalit | Link | Blokovat | Admin
Napiš mi obsah souboru DialogErrorClass.h, mrknu se na to.
Řešení 1× (Murry)
Viliam Púčik avatar 4.7.2010 22:43 Viliam Púčik | skóre: 22 | blog: minimal
Rozbalit Rozbalit vše Re: qt4/c++ nefungujici quit()
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdravim,

problem je v tom, ze objekt button obsahuje len tlacidlo QDialogButtonBox::Cancel, ktore emituje len signal rejected (nie accepted).

Toto by uz mohlo fungovat:
connect( button, SIGNAL( rejected() ), qApp, SLOT( quit() ) );
4.7.2010 23:33 Mr.S1lent.cz
Rozbalit Rozbalit vše Re: qt4/c++ nefungujici quit()
Jo, s rejected to funguje, moc diky :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.