• 6898阅读
  • 6回复

急问为何无法改变子窗口的背景颜色?? [复制链接]

上一主题 下一主题
离线darrenmu
 

只看楼主 倒序阅读 楼主  发表于: 2009-05-16
我在QWidget里面new 了一个QWidget,设置子窗口的背景颜色/图片均无效,还是父窗口的颜色,请问是怎么回事?

我是这么改颜色的:
QPalette palette;
palette.setColor(backgroundRole(), Qt::red);
setPalette(palette);

父窗口可以改变颜色,但里面NEW的字窗口用这方法无效,不知为何??

我调用QT3的setPaletteBackgroundColor也不行,QT4.4到底是什么机制啊?为何QWidget里再NEW一个QWidget,就不能改变其颜色了?郁闷。。好心人快出现
[ 此帖被darrenmu在2009-05-18 11:46重新编辑 ]
离线darrenmu

只看该作者 1楼 发表于: 2009-05-16
郁闷。在qt3里直接setPaletteBackgroundColor就行了,唉
离线darrenmu

只看该作者 2楼 发表于: 2009-05-16
请解答一下吧,设置背景色这么基本的问题。。
离线darrenmu

只看该作者 3楼 发表于: 2009-05-17
郁闷。。。请说句话
离线darrenmu

只看该作者 4楼 发表于: 2009-05-17
快疯了,求救。。。
离线darrenmu

只看该作者 5楼 发表于: 2009-05-18
我调用QT3的setPaletteBackgroundColor也不行,QT4.4到底是什么机制啊?为何QWidget里再NEW一个QWidget,就不能改变其颜色了?郁闷。。
离线gvim
只看该作者 6楼 发表于: 2009-05-18
#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QPalette>
#include <QPushButton>

int main(int argc, char *argv[]){
    QApplication app(argc,argv);

    QWidget *ww=new QWidget();

    QPushButton *xx=new QPushButton("http://www.cuteqt.com/blog",ww);
    QWidget *ew=new QWidget(ww);
   ew->setAutoFillBackground(true);

    QVBoxLayout *layout=new QVBoxLayout();
    ww->setLayout(layout);
    layout->addWidget(xx);
    layout->addWidget(ew);

    QPalette palette;
    palette.setColor(QPalette::Window, Qt::red);
    ew->setPalette(palette);

    ww->resize(300,200);
    ww->show();
    return app.exec();
}
Qt,Qt! 分享Cute之Qt体验
欢迎访问 http://www.cuteqt.com
欢迎订阅 http://www.cuteqt.com/?feed=rss2

快速回复
限100 字节
 
上一个 下一个