在 Qt creator 中提升 QWidget,构造函数的问题
Promoting QWidget in Qt creator, problems with constructor
我子classed QGraphicsView
:
class CustomGraphicsView : public QGraphicsView
{
public:
CustomGraphicsView(QWidget *parent = 0);
...
}
.cpp文件中的构造函数然后是这样实现的:
CustomGraphicsView::CustomGraphicsView(QWidget * parent):
QGraphicsView(parent)
{
}
现在我通过 Qt 创建者将 QGraphicsView 小部件提升为 CustomGraphicsView。但是当我想在我的 ImageWindow class;
的构造函数中连接到提升的小部件时
ImageWindow::ImageWindow(QWidget *parent) :
QDialog(parent),
ui(new Ui::ImageWindow)
{
ui->setupUi(this);
CustomGraphicsView * view = ui->graphicsView();
}
我收到错误消息:
term does not evaluate to a function taking 0 arguments.
我为构造函数指定了一个默认值,即 QWidget *parent = 0,并且在 ui_image_window.h
中设置了一个参数:
graphicsView = new CustomGraphicsView(ImageWindow);
那么什么会导致这个错误呢?
这是因为graphicsView
是成员而不是方法,所以不需要括号。就像 view = ui->graphicsView
一样访问它。这对于您生成的 UI class 中的所有 Qt 小部件都是相同的 - 它们只是成员,而不是方法。
我子classed QGraphicsView
:
class CustomGraphicsView : public QGraphicsView
{
public:
CustomGraphicsView(QWidget *parent = 0);
...
}
.cpp文件中的构造函数然后是这样实现的:
CustomGraphicsView::CustomGraphicsView(QWidget * parent):
QGraphicsView(parent)
{
}
现在我通过 Qt 创建者将 QGraphicsView 小部件提升为 CustomGraphicsView。但是当我想在我的 ImageWindow class;
的构造函数中连接到提升的小部件时ImageWindow::ImageWindow(QWidget *parent) :
QDialog(parent),
ui(new Ui::ImageWindow)
{
ui->setupUi(this);
CustomGraphicsView * view = ui->graphicsView();
}
我收到错误消息:
term does not evaluate to a function taking 0 arguments.
我为构造函数指定了一个默认值,即 QWidget *parent = 0,并且在 ui_image_window.h
中设置了一个参数:
graphicsView = new CustomGraphicsView(ImageWindow);
那么什么会导致这个错误呢?
这是因为graphicsView
是成员而不是方法,所以不需要括号。就像 view = ui->graphicsView
一样访问它。这对于您生成的 UI class 中的所有 Qt 小部件都是相同的 - 它们只是成员,而不是方法。