• 4855阅读
  • 5回复

紧急求助 [复制链接]

上一主题 下一主题
离线yishu
 
只看楼主 正序阅读 楼主  发表于: 2009-09-19
为什么点击QAction 3 没有对话框弹出?

#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()));
QObject::connect(action_3, SIGNAL(activated ()), MainWindow, 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

    
void slot1(){QMessageBox msgBox; msgBox.setText("The document has been modified.");
msgBox.exec();;}
};

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

QT_END_NAMESPACE

#endif // UI_SS_H
离线rqzrqh

只看该作者 5楼 发表于: 2009-09-19
他贴出的代码是ui文件的代码
把messagebox添加父类试试,不行就new
离线rqzrqh

只看该作者 4楼 发表于: 2009-09-19
引用第3楼dbzhang800于2009-09-19 21:24发表的  :
问题不在这儿
他这个不是QWidget 的子类,所以没有 Q_OBJECT 宏,也没有定义 slots
.......

这样编译居然也能通过
离线dbzhang800

只看该作者 3楼 发表于: 2009-09-19
引用第2楼rqzrqh于2009-09-19 21:19发表的  :
QMessageBox msgBox改成new试试


问题不在这儿

他这个不是QWidget 的子类,所以没有 Q_OBJECT 宏,也没有定义 slots

说到底,这个文件不是这么用的
离线rqzrqh

只看该作者 2楼 发表于: 2009-09-19
QMessageBox msgBox改成new试试
离线dbzhang800

只看该作者 1楼 发表于: 2009-09-19
大致看懂了

你这是Qt Designer 自动生成的 .h文件吧?

然后你在尝试修改这个文件?
快速回复
限100 字节
 
上一个 下一个