請問各位大大 我想在視窗中設定依個畫布,可是我不會設定它的大小,請問是對setpalette寫大小還是QSizePolicy寫呢?
以下附上我的程式碼
/**bump.cpp**/
#include "bump.h"
#include <qpainter.h>
BumpField::BumpField( QWidget *parent, const char *name )
: QWidget( parent, name )
{ setPalette(QPalette( QColor( 250, 250, 250)));
}
void BumpField::paintEvent(QPaintEvent *)
{
QPainter b(this);
b.setBrush(blue);
b.setPen(NoPen);
b.drawRect( 1, 1, 50, 25);
}
QSizePolicy BumpField::sizePolicy() const
{
return QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding);
}
/**bump.h**/
#ifndef BUMP_H
#define BUMP_H
#include <qwidget.h>
class BumpField : public QWidget
{
Q_OBJECT
public:
BumpField( QWidget *parent=0, const char *name=0 );
QSizePolicy sizePolicy() const;
protected:
void paintEvent( QPaintEvent * );
};
#endif // CANNON_H
/**main.cpp**/
#include <qapplication.h>
#include <qfont.h>
#include "bump.h"
class MyWidget : public QWidget
{
public:
MyWidget( QWidget *parent=0, const char *name=0);
};
MyWidget::MyWidget( QWidget *parent, const char *name)
: QWidget( parent, name)
{
BumpField *bumpField = new BumpField( this, "bumpField");
}
int main( int argc, char **argv )
{
QApplication::setColorSpec( QApplication::CustomColor );
QApplication a( argc, argv );
MyWidget w;
w.setGeometry(0, 0, 790, 520 );
a.setMainWidget( &w );
w.show();
return a.exec();
}
這樣我跑出來的畫面視窗很大但是畫布只有左上角一小格,請問我如何讓他佔滿整個視窗呢?