• 10580阅读
  • 6回复

【提问】为什么单击按钮没有弹出about? [复制链接]

上一主题 下一主题
离线fanyu
 
只看楼主 倒序阅读 楼主  发表于: 2005-09-07
这里.h文件
#ifndef FORM1_H
#define FORM1_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QMainWindow>
#include <QtGui/QPushButton>
#include <QtGui/QWidget>

class Ui_MainWindow
{
     //Q_OBJECT
public:
  QWidget *centralWidget;
  QPushButton *pushButton;

  void setupUi(QMainWindow *MainWindow)
  {
  MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
  MainWindow->resize(QSize(432, 347).expandedTo(MainWindow->minimumSizeHint()));
  centralWidget = new QWidget(MainWindow);
  centralWidget->setObjectName(QString::fromUtf8("centralWidget"));
  pushButton = new QPushButton(centralWidget);
  pushButton->setObjectName(QString::fromUtf8("pushButton"));
  pushButton->setGeometry(QRect(200, 80, 75, 23));
  pushButton->setDefault(true);
  MainWindow->setCentralWidget(centralWidget);
  retranslateUi(MainWindow);
  //QMessageBox::about(NULL,"test","msg");
  QObject::connect(pushButton, SIGNAL(clicked()), MainWindow, SLOT(this->ff()));

  QMetaObject::connectSlotsByName(MainWindow);
  } // setupUi
           //public slots:
           private slots:
           void ff()
           {
                 QMessageBox::about(NULL,"test","msg");
           }
  void retranslateUi(QMainWindow *MainWindow)
  {
  MainWindow->setToolTip(QApplication::translate("MainWindow", "Me"));
  pushButton->setText(QApplication::translate("MainWindow", "Start"));
  Q_UNUSED(MainWindow);
  } // retranslateUi
           
};

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

#endif // FORM1_H

这是Cpp文件
#include <QtGui/QtGui>
#include "a.h"
int main(int argc, char** argv)
{
     
  QApplication app(argc, argv);
     
  Ui::MainWindow ui;
  QMainWindow MainWindow;
  ui.setupUi(&MainWindow);

     
  MainWindow.show();
     
  return app.exec();
}
[ 此贴被fanyu在2005-09-07 17:42重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2005-09-07
问题没说清楚。什么叫没有结果??
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线yfy002

只看该作者 2楼 发表于: 2005-09-07
QObject::connect(pushButton, SIGNAL(clicked()), MainWindow, SLOT());
QMetaObject::connectSlotsByName(MainWindow);


pushButton的name是???
我渴望平静,风却给了我涟漪
我的blog:
http://sungaoyong.cublog.cn
离线XChinux

只看该作者 3楼 发表于: 2005-09-07
QObject::connect(pushButton, SIGNAL(clicked()), MainWindow, SLOT());
这里的SLOT()里面为什么是空?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线XChinux

只看该作者 4楼 发表于: 2005-09-07
QObject::connect(pushButton, SIGNAL(clicked()), MainWindow, SLOT(show()));//这里改了
怎么是show??
问题是。你的使用这个ui类的代码在哪里?
看看那里的代码。
你看到没有,这个类没有从任何类中继承,而它的setupUi(QWidget *form)
就是说它要给一个已有的部件来安装那些这个类里面的部件的。
那个而上面的语句中的MainWindow是哪里?这个类里面是没有show()的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线giscn
只看该作者 5楼 发表于: 2005-09-08
1. class Ui_MainWindow没有Q_OBJECT,不会解释你的 private slots:下面的东西
2. QObject::connect(pushButton, SIGNAL(clicked()), MainWindow, SLOT(this->ff()));
——slot括号里是错误的。
——ff也不是MainWindow的slot
——建议详细阅读qt doc的signal和slot一节
3. 没有#include <QMessageBox>
4. qt不推荐你在Ui_MainWindow里添加你自己的东西。

你这个程序根本连编译都不可能通过的,何来的单击按钮没有弹出about云云?
http://nzt.spaces.live.com
离线fanyu
只看该作者 6楼 发表于: 2005-09-08
此问题可以解决了,参照”学习QT4初步编程(二)“
快速回复
限100 字节
 
上一个 下一个