工程名为:projectchooser
发现projectdialog.h在没有包含projectlistwidget.h的情况下就使用了projectlistwidget.h中定义的类名ProjectListWidget,使其作为类ProjectDialog的成员函数moveCurrentItem的参数类型。原来与ui_projectdialog.h有关系,可是ui_projectdialog.h是生成的文件,它是怎么把projectdialog包含进去的呢?哪位能帮忙把原理讲一下,谢谢了。
- C/C++ code
//projectdialog.h#ifndef PROJECTDIALOG_H#define PROJECTDIALOG_H#include <QDialog>#include "ui_projectdialog.h"class ProjectDialog : public QDialog, private Ui::ProjectDialog{ Q_OBJECTpublic: ProjectDialog(QWidget *parent = 0);public slots: void on_leftButton_clicked(); void on_rightButton_clicked();private: void moveCurrentItem(ProjectListWidget *source, ProjectListWidget *target);};#endif
------解决方案--------------------
QtDesigner里设计的ui,可以将某个控件提升为(Promote to...)一个自定义类型的控件,应该可以解答你这个问题。