• 5123阅读
  • 5回复

紧急求助slot找不到 [复制链接]

上一主题 下一主题
离线yishu
 
只看楼主 倒序阅读 楼主  发表于: 2009-09-26
为什么点击action没反应啊?
/********************************************************************************
** Form generated from reading ui file 'ss.ui'
**
** Created: Sat Sep 19 20:01:14 2009
**      by: Qt User Interface Compiler version 4.4.3
**
** WARNING! All changes made in this file will be lost when recompiling ui file!
********************************************************************************/

#ifndef UI_SS_H
#define UI_SS_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QMainWindow>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QStatusBar>
#include <QtGui/QWidget>

#include <QMessageBox>

QT_BEGIN_NAMESPACE

class Ui_MainWindow
{
public:
    QAction *action;
    QAction *action_2;
   QAction *action_3;
    QWidget *centralwidget;
    QMenuBar *menubar;
    QMenu *menu;
    QMenu *menu_2;
    QStatusBar *statusbar;

    void setupUi(QMainWindow *MainWindow)
    {
    if (MainWindow->objectName().isEmpty())
        MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
    MainWindow->resize(800, 600);
    action = new QAction(MainWindow);
    action->setObjectName(QString::fromUtf8("action"));
    action_2 = new QAction(MainWindow);
    action_2->setObjectName(QString::fromUtf8("action_2"));
    action_3 = new QAction(MainWindow);
    action_3->setObjectName(QString::fromUtf8("action_3"));
    centralwidget = new QWidget(MainWindow);
    centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
    MainWindow->setCentralWidget(centralwidget);
    menubar = new QMenuBar(MainWindow);
    menubar->setObjectName(QString::fromUtf8("menubar"));
    menubar->setGeometry(QRect(0, 0, 800, 20));
    menu = new QMenu(menubar);
    menu->setObjectName(QString::fromUtf8("menu"));
    menu_2 = new QMenu(menubar);
    menu_2->setObjectName(QString::fromUtf8("menu_2"));
    MainWindow->setMenuBar(menubar);
    statusbar = new QStatusBar(MainWindow);
    statusbar->setObjectName(QString::fromUtf8("statusbar"));
    MainWindow->setStatusBar(statusbar);

    menubar->addAction(menu->menuAction());
    menubar->addAction(menu_2->menuAction());
    menu->addAction(action);
    menu->addAction(action_2);
    menu->addAction(action_3);

    retranslateUi(MainWindow);
  //  QObject::connect(menubar, SIGNAL(hovered(QAction*)), MainWindow, SLOT(slot1()));
  //  QObject::connect(menubar, SIGNAL(triggered(QAction*)), MainWindow, SLOT(slot2()));
// connect(action_3, SIGNAL(triggered ()), this,SLOT(slot1()));

    QMetaObject::connectSlotsByName(MainWindow);
    } // setupUi

    void retranslateUi(QMainWindow *MainWindow)
    {
    MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
    action->setText(QApplication::translate("MainWindow", "\350\275\257\344\272\244\346\215\242\346\234\272\350\247\204\345\210\222", 0, QApplication::UnicodeUTF8));
    action_2->setText(QApplication::translate("MainWindow", "\345\252\222\344\275\223\347\275\221\345\205\263\350\247\204\345\210\222", 0, QApplication::UnicodeUTF8));
    action_3->setText(QApplication::translate("MainWindow", "\344\277\241\344\273\244\347\275\221\345\205\263\350\247\204\345\210\222", 0, QApplication::UnicodeUTF8));    menu->setTitle(QApplication::translate("MainWindow", "\347\275\221\345\205\203\350\247\204\345\210\222", 0, QApplication::UnicodeUTF8));
    menu_2->setTitle(QApplication::translate("MainWindow", "\345\270\246\345\256\275\350\247\204\345\210\222", 0, QApplication::UnicodeUTF8));
    } // retranslateUi

    
};

namespace Ui {
    class MainWindow: public Ui_MainWindow {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_SS_H

//ss.cpp
#include <QtGui>

#include "softswich.h"

SoftSwich::SoftSwich(QWidget *parent)
    :QMainWindow(parent)
{
    setupUi(this);
connect(action_3, SIGNAL(triggered ()), this,SLOT(slot1()));;
    
}

//ss.h
#ifndef SOFTSWICH_H
#define SOFTSWICH_H

#include <QMainWindow>

#include <ui_ss.h>
class SoftSwich:public QMainWindow, public Ui_MainWindow
{
    Q_OBJECT;
public:
    SoftSwich(QWidget *parent = 0);

void slot1(){QMessageBox::about( this, "About <Application>",
        "<Application> is a <one-paragraph blurb>\n\n");

        }


离线yishu
只看该作者 1楼 发表于: 2009-09-26
折腾一周多了,多谢大家指教!!!
离线yishu
只看该作者 2楼 发表于: 2009-09-26
有人赐教吗?
离线dbzhang800

只看该作者 3楼 发表于: 2009-09-26
你没定义槽,

在你的slot1定义的前一行,加上:

  1. public slots:
离线jiangll
只看该作者 4楼 发表于: 2009-09-26
头文件在声明 slot1方法时需要在前面加上 public slots: 这样编译的时候才能找到slot方法。
离线foxyz

只看该作者 5楼 发表于: 2009-09-27
上边已经有人回答了,有个slots, moc才会联结signal-slot
快速回复
限100 字节
 
上一个 下一个