我刚学Qt一个星期,纯属菜鸟。
我在自己建立的工程里面完成了QWidget的背景设置,并且实现了
图片随
窗口的大小变化而变化,现在出现一个很严重的
问题,在QWidget上面再放一些
按钮,比如PushButton和Label等都
显示不出来,很急!!求高手帮忙!!
我的Wedget代码为:
==================Fight_UI .h==========================================
class Fight_UI : public QMainWindow
{
Q_OBJECT
public:
Fight_UI(QWidget *parent = 0, Qt::WFlags flags = 0);
~Fight_UI();
protected:
void resizeEvent(QResizeEvent *event);
private:
QImage _image;
QLabel *label;
QHBoxLayout *layout;
private:
Ui::Fight_UIClass ui;
};
=======================================Fight_UI .cpp====================
Fight_UI::Fight_UI(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
_image.load("Resources/Game_background.jpg");
QWidget::setAutoFillBackground(true); // 这个属性一定要设置
QPalette pal(palette());
pal.setBrush(QPalette::Window,
QBrush(_image.scaled(size(), Qt::IgnoreAspectRatio,
Qt::SmoothTransformation)));
QWidget::setPalette(pal);
layout = new QHBoxLayout ; //从这里开始,到this->setLayout(layout);是我自己尝试用来显示一些新部件,
label = new
QLabel("hello!"); //但是显示不出来……
layout->addWidget(label);
this->setLayout(layout);
ui.setupUi(this);
}
void Fight_UI::resizeEvent(QResizeEvent *event)
{
QWidget:: resizeEvent (event);
QPalette pal(QWidget::palette());
pal.setBrush(QPalette::Window,
QBrush(_image.scaled(event->size(), Qt::IgnoreAspectRatio,
Qt::SmoothTransformation)));
QWidget::setPalette(pal);
}
时间比较紧急,希望有大家可以帮帮小弟~~
[ 此帖被a发神经a在2011-05-14 10:52重新编辑 ]