错误:no matching function for call to setupUi

rophie 2011-12-26 10:31:53
按照《C++ GUI Qt4编程》做那个对话框程序结果出错,用的是Qt Creator,
#include <QApplication>
#include <QDialog>

#include"ui_gotocelldialog.h"

int main(int argc,char *argv[])
{
QApplication app(argc,argv);
Ui::GoToCellDialog ui;
QDialog *dialog=new QDialog;
ui.setupUi(dialog);
dialog->show();
return app.exec();
}

ui_gotocelldialog.h是自动生成的,代码为:
#ifndef UI_GOTOCELLDIALOG_H
#define UI_GOTOCELLDIALOG_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDockWidget>
#include <QtGui/QHBoxLayout>
#include <QtGui/QHeaderView>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QPushButton>
#include <QtGui/QSpacerItem>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>

QT_BEGIN_NAMESPACE

class Ui_GoToCellDialog
{
public:
QWidget *dockWidgetContents;
QVBoxLayout *verticalLayout;
QHBoxLayout *horizontalLayout;
QLabel *label;
QLineEdit *lineEdit;
QHBoxLayout *horizontalLayout_2;
QSpacerItem *horizontalSpacer;
QPushButton *pushButton;
QPushButton *pushButton_2;

void setupUi(QDockWidget *GoToCellDialog)
{
……
} // setupUi

void retranslateUi(QDockWidget *GoToCellDialog)
{
GoToCellDialog->setWindowTitle(QApplication::translate("GoToCellDialog", "GoToCell", 0, QApplication::UnicodeUTF8));
label->setText(QApplication::translate("GoToCellDialog", "&Cell", 0, QApplication::UnicodeUTF8));
pushButton->setText(QApplication::translate("GoToCellDialog", "OK", 0, QApplication::UnicodeUTF8));
pushButton_2->setText(QApplication::translate("GoToCellDialog", "Cancel", 0, QApplication::UnicodeUTF8));
} // retranslateUi

};

namespace Ui {
class GoToCellDialog: public Ui_GoToCellDialog {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_GOTOCELLDIALOG_H

错误信息为
E:\Qt\Dialog\QtDialog.cpp:-1: In function 'int qMain(int, char**)':
E:\Qt\Dialog\QtDialog.cpp:13: 错误:no matching function for call to 'Ui::GoToCellDialog::setupUi(QDialog*&)'
E:\Qt\Dialog\ui_gotocelldialog.h:42: candidates are: void Ui_GoToCellDialog::setupUi(QDockWidget*)

新手求教!
...全文
1176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
念茜 2011-12-26
  • 打赏
  • 举报
回复
请统一到底是setupUi(QDockWidget*)还是setupUi(QDialog*
奔跑吧猴哥 2011-12-26
  • 打赏
  • 举报
回复
QDialog *dialog=new QDialog;
类型不匹配,应该是QDockWidget
rophie 2011-12-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yiyaaixuexi 的回复:]

请统一到底是setupUi(QDockWidget*)还是setupUi(QDialog*
[/Quote]
这两个的区别是什么?书上是QDialog,自己生成的ui_gotocelldialog.h文件里面是QDockWidget,晕
coldfire1 2011-12-26
  • 打赏
  • 举报
回复
dialog不是一个QDockWidget *,setupUi参数类型不对么

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧