《一》http://blog.csdn.net/qq5823996/article/details/6851788
Qt的窗口背景图片有3种方式设置
1、QPalette p;
p.setBrush();
2、this->setStyleSheet("background-image:url(:/images/dl.png)");
3、用PaintEvent,实时刷新
我的问题比较特殊,我画了一个登陆窗,初始化之后输入用户名和密码登陆,如果错误,也能登陆,在主窗体有查询功能处会提示登陆,这个时候弹出登陆窗居然没有背景图片了,虽然不知道原因是什么,不过QPallete和PaintEvent都不起作用,setStyleSheet好使,不过问题又来了,在登陆窗上面的QLabel和QLineEdit和QPushbutton都会自动赋上背景图片,解决办法就是给他们贴上空白色QLabel::setStyleSheet("background:
transparent;border:0px");
使用setStyleSheet来设置图形界面的外观:
QT Style Sheets是一个很有利的工具,允许定制窗口的外观,
此外还可以用子类QStyle来完成,他的语法很大比重来源于html的CSS,但是适用于窗口
概括:
Style Sheets是文字性的设定,对于整个应用程序可以使用QApplication::setStyleSheet()
或者对应一个窗口可以使用QWidget::setStyleSheet(),如果好几个样式表在不同的层次上设定,
QT将会集合所有的样式表来设定外观,这称作级串联
例如:下面的样式表指定所有的QLineEdit应该用黄色作为他们的背景颜色,所有的核对框应该用红色作为他们的文本颜色
QLineEdit { background: yellow }
QCheckBox { color: red }
复制代码
对于这种定制,样式表比palette调色板更强大,例如使用QPalette::Button
role来设定一个按钮为红色可能引起危险
对于单独使用QPalette很难完成的定制,样式表可以指定样式表作用于当前窗口样式顶部,这意味这应用程序讲看起来尽可能的自然,但是任何样式表系统参数应该考虑,不像QPalette那样,样式表提供检查,如果你设定了一个按钮的背景颜色为红色,你应该确定在所有的平台按钮将会有一个红色的背景,除此,Qt
Designer提供样式表集成环境,使得在不同的窗口样式中更容易看到样式表的效果
此外,样式表可以用来为你的应用程序提供一个出众的外观,不需要使用子类QStyle,例如,可以指定任意的图片为单选按钮和核对按钮,来