我想在一个界面里(music) 通过点击一个按钮显示另一个界面(spectrum),编译通过,点击按钮后提示提交bug,就挂那了。主要代码如下,大家帮忙看看.......
//music.h
#ifndef MUSIC_H
#define MUSIC_H
class Music: public QWidget
{
Q_OBJECT
public:
Music(QWidget *parent = NULL);
~Music();
public slots:
void on_pbPlay_clicked();
private:
QPushButton *PlayButton;
QLabel *m_TotalBackGroundLabel;
protected:
Spectrum *Spui; //另一个要显示的类
};
#endif
//music.cpp
#include "music.h"
#include "spectrum.h"
Music::Music(QWidget *parent): QWidget (parent)
{
QPalette pal;
pal.setColor(QPalette::Background, QColor(0,0,0));
m_TotalBackGroundLabel=new QLabel(this);
m_TotalBackGroundLabel->setAutoFillBackground(true);
m_TotalBackGroundLabel->setGeometry(0, 0, 800, 480);
m_TotalBackGroundLabel->setPalette( pal );
m_TotalBackGroundLabel->show();
PlayButton= new QPushButton(this);
PlayButton->setStyleSheet("border-image: url(./Images/musicplayoff.png);");
PlayButton->setFocusPolicy(Qt::NoFocus);
PlayButton->setGeometry(177, 409, 66, 65);
PlayButton->show();
connect(PlayButton,SIGNAL(clicked()),this,SLOT(on_pbPlay_clicked()));
}
void Music::on_pbPlay_clicked()
{
if(Spui == NULL)
{
Spui = new Spectrum(this);
Spui ->show();
}
else
Spui->show();
}
// spectrum.h
#ifndef SPECTRUM_H
#define SPECTRUM_H
#include <QtGui>
class Spectrum: public QWidget
{
Q_OBJECT
public:
Spectrum(QWidget *parent = NULL);
~Spectrum();
protected:
void paintEvent(QPaintEvent*);
};
#endif
// spetrum.cpp
#include "spectrum.h"
Spectrum::Spectrum(QWidget *parent): QWidget (parent)
{
QWidget *pWidget = NULL;
// QPainter p(pWidget);
QPalette pal;
pal.setBrush(QPalette::Window,QBrush(QPixmap("Images/musicmiddleframe.png")));
pWidget->setPalette(pal);
pWidget->setAutoFillBackground(true);
pWidget->setGeometry(177,191, 604, 95);
}
Spectrum::~Spectrum()
{
}
void Spectrum::paintEvent ( QPaintEvent * )
{
}
主要代码就是这样,麻烦各位帮忙看看.......