• 8981阅读
  • 3回复

【提问】Qt中的窗口有没有边框? [复制链接]

上一主题 下一主题
离线liu_ming50
 

只看楼主 倒序阅读 楼主  发表于: 2006-03-07
各位大虾,请教两个问题:
1.QWidget类创建的窗口,能不能设置边框属性?比如说:把边框设置成粗体的。
2.在constructor中调用QWidget::setBackgroundMode()设置背景色模式,不管设置成什么,背景都是灰色的,没有区别。 我试过PaletteBase ,PaletteDark ,PaletteText,PaletteMidlight等好多属性,都是灰色的,我看文档,应该会不同才对啊?没有办法,我只好用FixedColor属性,然后调用QWidget::setPaletteForegroundColor()来加入背景色才成功,可是我只是想把背景色设置成白色,用PaletteBase为什么不行?
离线roy_skyx

只看该作者 1楼 发表于: 2006-03-07
背景设要用调色板,你可以看一下调色板那个类。我觉得这一点qt很误导人。有设置背景色的函数却不起作用,非要用调色板来设置。
离线roy_skyx

只看该作者 2楼 发表于: 2006-03-07
边框问题,可以设置为无边框的等不同风格的窗体,你可以看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);
当然你可以改其他的颜色
离线liu_ming50

只看该作者 3楼 发表于: 2006-03-07
感谢roy_skyx ,背景色问题解决了。边框问题还有一点:在QT::WidgetFlags中可以将窗体设置成带边框的模式,但是却没有将边框设置成粗体的选项。继续郁闷中...
快速回复
限100 字节
 
上一个 下一个