Qt 信号>插槽机制
Qt SIGNAL->SLOTS mechanizm
我有一些c++代码与Qt 4函数:
QColorDialog colordialog0(&window0);
colordialog0.show();
QPixmap pixmap0(10, 10);
QObject::connect(&colordialog0, SIGNAL(colorSelected(const QColor &)), &pixmap0, SLOT(fill(const QColor &)));
当我构建一个项目时,它编译错误:
error C2665: 'QObject::connect' : none of the 3 overloads could convert all the argument types
qtincludeqtcore../../src/corelib/kernel/qobject.h(204): could be 'bool QObject::connect(const QObject *,const char *,const QObject *,const char *,Qt::ConnectionType)'
qtincludeqtcore../../src/corelib/kernel/qobject.h(217): or 'bool QObject::connect(const QObject *,const QMetaMethod &,const QObject *,const QMetaMethod &,Qt::ConnectionType)'
qtincludeqtcore../../src/corelib/kernel/qobject.h(231): or 'bool QObject::connect(const QObject *,const char *,const char *,Qt::ConnectionType) const'
while trying to match the argument list '(QColorDialog *, const char *, QPixmap *, const char *)'
我无法理解这一点,因为当我编译另一个代码(没有Q_OBJECT, moc文件和其他):
QFileDialog filedialog0;
filedialog0.show();
QLabel label0(¢ralwidget0);
QObject::connect(&filedialog0, SIGNAL(fileSelected(const QString &)), &label0, SLOT(setText(const QString &)));
不是错误。我知道原因在重载函数中。所以,我怎么能编译(VS2008)只有一个函数?
谢谢。
注:对不起,我的英语不好。
QPixmap没有fill()槽。
您可以做一个包装器并创建自己的插槽。或者找一个更适合你的课程
相关文章:
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何在没有信号的情况下从C++执行QML插槽
- 从Q_INVOKABLE功能或插槽中更改QQuick图像源
- 升压信号2将插槽传递到成员功能以断开连接
- 如何在qt中将信号和插槽与另一个对象连接 --解决了
- C++ 信号和插槽不工作:插槽不响应事件
- NS3 插槽混淆(需要帮助理解)
- QObject::连接无法将信号连接到*this*对象的插槽
- QT 插槽未在主线程上调用
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- 控制带有信号/插槽的Qt QML滑动视图
- Qt 信号/插槽问题
- QT5 信号不会激活插槽内的功能
- Qt5:连接:如果插槽的参数少于信号,如何使用"连接"
- 需要实例化不同类/对象并在启动时确定的硬件插槽的设计模式
- Qt信号和插槽如果从QRunnable或其他线程调用,则不起作用
- Qt插槽调用了两次
- 通过信号/插槽机制将 QString 传递给 QThread
- 使用新的 Qt5 信号/插槽机制连接 QTcpSocket::error() 时编译错误
- Qt 信号>插槽机制