标题:【提问】初学者请教:编译自定义slots出错
作者:nuage
日期:2005-10-29 10:27
内容:
按照论坛上安装方法装了qt-win-opensource-4.0.1-mingw.exe,devcpp-4.9.9.2_setup.exe两个程序,在编译下面程序时总是错误:
代码:
#include
#include
#include
#include
#include
#include
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
public slots:
void MyExitSolt(int value);
};
MyWidget::MyWidget(QWidget *parent):QWidget( parent)
{
QPushButton *btquit = new QPushButton("quit");//生成退出按钮
QLCDNumber*lcd = new QLCDNumber(2); //lcd显示
QSlider *slider = new QSlider(Qt::Horizontal); //滑动条
slider->setRange(0,919);
slider->setValue(0);
connect(slider,SIGNAL(valueChanged(int)),this,SLOT(MyExitSolt(int)));
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(btquit);
layout->addWidget(lcd);
layout->addWidget(slider);
setLayout(layout);
}
void MyWidget::MyExitSolt(int value)
{
int a=0;
}
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
MyWidget widget;
widget.show();
return app.exec();
}
在命令行下输入:qmake -project
qmake
mingw32-make
程序输 ..
#1 [nuage 10-29 10:40]
问题已解决。方法是把包含自定义slots的类和主文件分开。
#2 [fanyu 10-29 10:41]
你应该从QMainWindow来派生一个类试试。
#3 [XChinux 10-29 10:49]
你是把所有的程序都写到一个文件里了是吧??最好把头文件,实现文件和主函数文件分开写.这样,moc编译的时候才好处理.如果不分开的话,就要采用其它的方法来进行编译了.你搜索一下本版的帖子,我记得有一个帖子问到这个问题的,里面有解答怎样编译这样的程序的说明.