使用 Qt4,如何创建一个类来创建一个 SLOT,以使用 CONNECT 和 QSLIDER 来控制 QWebView 的 setTextSizeMultiplier。
我的代码:(sliderbar是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*)’中:
首先,为了让你的类支持信号/槽,它必须从 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
是一个宏,你不能像你那样声明它。