I'm experiencing the same problem as axeljaeger. I'm using designer to create a menu action and connect its triggered() signal to a defined slot in my app. It simply doesn't work, its as though connect() in my ui_file.h file isn't working ... but there is no complaining about failure to connect in the terminal window when app is run.

While waiting for my Qt Centre account to activate (so I could post same question) I tried building a release, rather than a debug load and that fixed(?) the problem ... the menu action now connects properly to the designated slot. I made another debug load, and the problem came back, another release load and the problem went away.

It seems there's a legitimate bug here somewhere, either in a Qt library, or in the totally automated build system (I'm using NetBeans 6.8 IDE to handle build).

Below is my code if anyone is interested ... incidentally, the pushButton connect (which is functionally very similiar to the actionE_xit action) works in both debug and release loads.

main.cpp
Qt Code:
  1. #include <QtGui/QApplication>
  2. #include "FrmMain.h"
  3.  
  4. int main(int argc, char *argv[]) {
  5. QApplication app(argc, argv);
  6. FrmMain form;
  7. form.show();
  8. return app.exec();
  9. }
To copy to clipboard, switch view to plain text mode 

ui_FrmMain.h (autogenerated (and unaltered) from designer's .ui file)
Qt Code:
  1. #ifndef UI_FRMMAIN_H
  2. #define UI_FRMMAIN_H
  3.  
  4. #include <QtCore/QVariant>
  5. #include <QtGui/QAction>
  6. #include <QtGui/QApplication>
  7. #include <QtGui/QButtonGroup>
  8. #include <QtGui/QHeaderView>
  9. #include <QtGui/QMainWindow>
  10. #include <QtGui/QMenu>
  11. #include <QtGui/QMenuBar>
  12. #include <QtGui/QPushButton>
  13. #include <QtGui/QStatusBar>
  14. #include <QtGui/QWidget>
  15.  
  16. QT_BEGIN_NAMESPACE
  17.  
  18. class Ui_FrmMain
  19. {
  20. public:
  21. QAction *actionE_xit;
  22. QWidget *centralwidget;
  23. QPushButton *pushButton;
  24. QMenuBar *menubar;
  25. QMenu *menu_File;
  26. QStatusBar *statusbar;
  27.  
  28. void setupUi(QMainWindow *FrmMain)
  29. {
  30. if (FrmMain->objectName().isEmpty())
  31. FrmMain->setObjectName(QString::fromUtf8("FrmMain"));
  32. FrmMain->resize(164, 125);
  33. actionE_xit = new QAction(FrmMain);
  34. actionE_xit->setObjectName(QString::fromUtf8("actionE_xit"));
  35. centralwidget = new QWidget(FrmMain);
  36. centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
  37. pushButton = new QPushButton(centralwidget);
  38. pushButton->setObjectName(QString::fromUtf8("pushButton"));
  39. pushButton->setGeometry(QRect(10, 20, 92, 28));
  40. FrmMain->setCentralWidget(centralwidget);
  41. menubar = new QMenuBar(FrmMain);
  42. menubar->setObjectName(QString::fromUtf8("menubar"));
  43. menubar->setGeometry(QRect(0, 0, 164, 25));
  44. menu_File = new QMenu(menubar);
  45. menu_File->setObjectName(QString::fromUtf8("menu_File"));
  46. FrmMain->setMenuBar(menubar);
  47. statusbar = new QStatusBar(FrmMain);
  48. statusbar->setObjectName(QString::fromUtf8("statusbar"));
  49. FrmMain->setStatusBar(statusbar);
  50.  
  51. menubar->addAction(menu_File->menuAction());
  52. menu_File->addAction(actionE_xit);
  53.  
  54. retranslateUi(FrmMain);
  55. QObject::connect(pushButton, SIGNAL(clicked()), FrmMain, SLOT(PushButton_clicked()));
  56. QObject::connect(actionE_xit, SIGNAL(triggered()), FrmMain, SLOT(PushButton_clicked()));
  57.  
  58. QMetaObject::connectSlotsByName(FrmMain);
  59. } // setupUi
  60.  
  61. void retranslateUi(QMainWindow *FrmMain)
  62. {
  63. FrmMain->setWindowTitle(QApplication::translate("FrmMain", "FrmMain", 0, QApplication::UnicodeUTF8));
  64. actionE_xit->setText(QApplication::translate("FrmMain", "E&xit", 0, QApplication::UnicodeUTF8));
  65. pushButton->setText(QApplication::translate("FrmMain", "PushButton", 0, QApplication::UnicodeUTF8));
  66. menu_File->setTitle(QApplication::translate("FrmMain", "&File", 0, QApplication::UnicodeUTF8));
  67. } // retranslateUi
  68.  
  69. };
  70.  
  71. namespace Ui {
  72. class FrmMain: public Ui_FrmMain {};
  73. } // namespace Ui
  74.  
  75. QT_END_NAMESPACE
  76.  
  77. #endif // UI_FRMMAIN_H
To copy to clipboard, switch view to plain text mode 

FrmMain.h
Qt Code:
  1. #ifndef _FRMMAIN_H
  2. #define _FRMMAIN_H
  3.  
  4. #include "ui_FrmMain.h"
  5.  
  6. class FrmMain : public QMainWindow {
  7. Q_OBJECT
  8. public:
  9. FrmMain();
  10. virtual ~FrmMain();
  11. private:
  12. Ui::FrmMain widget;
  13.  
  14. private slots:
  15. void PushButton_clicked();
  16. };
  17.  
  18. #endif /* _FRMMAIN_H */
To copy to clipboard, switch view to plain text mode 


FrmMain.cpp
Qt Code:
  1. FrmMain::FrmMain() {
  2. widget.setupUi(this);
  3. }
  4.  
  5. FrmMain::~FrmMain() {
  6. }
  7.  
  8. void FrmMain::PushButton_clicked() {
  9. this->close();
  10. }
To copy to clipboard, switch view to plain text mode