标题:【提问】Qt中的窗口有没有边框?
作者:liu_ming50
日期:2006-03-07 01:28
内容:
各位大虾,请教两个问题:
1.QWidget类创建的窗口,能不能设置边框属性?比如说:把边框设置成粗体的。
2.在constructor中调用QWidget::setBackgroundMode()设置背景色模式,不管设置成什么,背景都是灰色的,没有区别。 我试过PaletteBase ,PaletteDark ,PaletteText,PaletteMidlight等好多属性,都是灰色的,我看文档,应该会不同才对啊?没有办法,我只好用FixedColor属性,然后调用QWidget::setPaletteForegroundColor()来加入背景色才成功,可是我只是想把背景色设置成白色,用PaletteBase为什么不行?
#1 [roy_skyx 03-07 01:45]
背景设要用调色板,你可以看一下调色板那个类。我觉得这一点qt很误导人。有设置背景色的函数却不起作用,非要用调色板来设置。
#2 [roy_skyx 03-07 01:49]
边框问题,可以设置为无边框的等不同风格的窗体,你可以看WFlags这一项的不同设置值
设置代码如下:
QColorGroup activColorGroup = lisboxPalette.active();
QColorGroup disableColorGroup = lisboxPalette.disabled();
QColorGroup inactivColorGroup = lisboxPalette.inactive();
activColorGroup.setColor(QColorGroup::Background, Qt::black);
activColorGroup.setColor(QColorGroup::Foreground, Qt::red);
activColorGroup.setColor(QColorGroup::Base, Qt::black);
activColorGroup.setColor(QColorGroup::Text, Qt::blue);
disableColorGroup.setColor(QColorGroup::Background, Qt::black);
disableColorGroup.setColor(QColorGroup::Foreground, Qt::red);
inactivColorGroup.setColor(QColorGroup::Background, Qt::black);
inactivColorGroup.setColor(QColorGroup::Foreground, Qt::red);
QPalette newPalette(activColorGroup, disableColorGroup, inactivColorGroup);
this->setPalette(newPalette);
当然你可以改其他的颜色
#3 [liu_ming50 03-07 18:05]
感谢roy_skyx ,背景色问题解决了。边框问题还有一点:在QT::WidgetFlags中可以将窗体设置成带边框的模式,但是却没有将边框设置成粗体的选项。继续郁闷中...