下面是我写的程序:是可以运行的:
//widgetstack.h
#ifndef WIDGETSTACK_H
#define WIDGETSTACK_H
#include<qwidget.h>
#include<qwidgetstack.h>
#include<qpushbutton.h>
class MyMainWindow:public QWidget
{
Q_OBJECT
public:
MyMainWindow();
private:
QWidgetStack *widgetstack;
QPushButton *b1,*b2,*cb1,*cb2;
public slots:
void showb1();
void showb2();
};
#endif
//widgetstack.cpp
#include"widgetstack.h"
void MyMainWindow::showb1(){
widgetstack->raiseWidget(b1);
}
void MyMainWindow::showb2(){
widgetstack->raiseWidget(b2);
}
MyMainWindow::MyMainWindow()
{
setGeometry(100,100,150,130);
widgetstack=new QWidgetStack(this);
widgetstack->setGeometry(10,10,130,80);
b1=new QPushButton("Button 1",this);
b2=new QPushButton("Button 2",this);
widgetstack->addWidget(b1,1);
widgetstack->addWidget(b2,2);
cb1=new QPushButton("Raise b1",this);
cb1->setGeometry(10,100,80,20);
cb2=new QPushButton("Raise b1",this);
cb2->setGeometry(80,100,60,20);
connect(cb1,SIGNAL(clicked()),this,SLOT(showb1()));
connect(cb2,SIGNAL(clicked()),this,SLOT(showb2()));
}
//main.cpp
#include<qapplication.h>
#include"widgetstack.h"
int main(int argc,char **argv)
{
QApplication a(argc,argv);
MyMainWindow w;
a.setMainWidget(&w);
w.show();
a.exec();
}
//注:当我把这几个程序合到一个cpp文件时会有问题,不知是为什么,会提示:undefined reference to vtable for"xxx::xxx"
[ 此贴被brightcat1在2008-09-19 16:12重新编辑 ]