使用Qt4,如何使用CONNECT和QSLIDER创建一个类来创建一个SLOT来控制QWebView的setTextSizeMultiplier。
我的代码:( thesliderbar是QSlider,vweb是QWebView)
class webextras
{
Q_OBJECT::Ui_ywr *pui;
public slots:
void wtresize(int wtr)
{
pui->vweb->setTextSizeMultiplier(wtr);
}
};
connect(thesliderbar,SIGNAL(valueChanged(int)),webextras,SLOT(wtresize(int)));
我收到了connect();。
的错误错误:
ywr.cpp:31:错误:在','令牌之前预期的主要表达式
ywr.cpp:-1:在构造函数'ywr :: ywr(QWidget *)'中:
答案 0 :(得分:3)
首先,为了使您的类能够支持信号/插槽,它必须从QObject继承。
其次,你应该使用moc工具所需的宏Q_OBJECT
:
元对象编译器moc是处理Qt C ++的程序 扩展。
moc工具读取C ++头文件。如果找到一个或多个类 包含Q_OBJECT宏的声明,它生成一个C ++源代码 包含这些类的元对象代码的文件。除其他外 事物,信号和插槽需要元对象代码 机制,运行时类型信息和动态属性 系统
所以你的课应该是:
class webextras : public QObject
{
Q_OBJECT;
public slots:
void wtresize(int wtr)
{
pui->vweb->setTextSizeMultiplier(wtr);
}
};
什么是Ui_ywr *pui
? Q_OBJECT
是一个宏,你不能像你那样声明它。