Qt之界面实现技巧-- 窗体显示,绘制背景,圆角,QSS样式
转自 --》 http://blog.sina.com.cn/s/blog_a6fb6cc90101dech.html
总结一下,在开发Qt的过程中的一些技巧!可遇而不可求。。。
一、主界面
1、无边框
2、界面始终位于顶部位置
3、任务栏图标点击时进行显示/不显示切换
4、隐藏任务栏显示
5、关闭按钮实现的功能
6、绘制背景图片并且实现圆角效果
7、设置应用程序的字体
8、设置组件字体
二、全屏显示与还原
1、遮挡任务栏:
2、不遮挡任务栏:
}
三、QSS样式
1、QComboBox:
combo_box->setStyleSheet("QComboBox{border:1px solid gray;}"
2、QSpinBox:
spin_box->setStyleSheet("QSpinBox{border:1px solid gray;}"
3、QMenu:
padding:5px;
border:1px solid gray;
padding:0px 40px 0px 30px;
height:25px;
margin:5px 0px 5px 0px;
4、QSlider:
QSlider::groove:horizontal{
border:0px;
height:4px;
}
QSlider::sub-page:horizontal{
}
QSlider::add-page:horizontal{
}
QSlider::handle:horizontal{
background:white;
width:10px;
border-radius:5px;
margin:-3px 0px -3px 0px;
}
5、QCheckBox:
QCheckBox{
spacing: 2px;
}
QCheckBox::indicator {
width: 20px;
height: 20px;
}
QCheckBox::indicator:unchecked {
image: url(:/login/checkbox);
}
QCheckBox::indicator:unchecked:hover {
image: url(:/login/checkbox_hover);
}
QCheckBox::indicator:unchecked:pressed {
image: url(:/login/checkbox_press);
}
QCheckBox::indicator:checked {
image: url(:/login/checkbox_selected);
}
QCheckBox::indicator:checked:hover {
image: url(:/login/checkbox_selected_hover);
}
QCheckBox::indicator:checked:pressed {
image: url(:/login/checkbox_selected_press);
}
6、QScrollBar:
QScrollBar{
background:transparent;
}
QScrollBar::handle{
background:rgb(180, 180, 180, 150);
}
QScrollBar::handle:hover{
background:rgb(150, 150, 150, 180);
}
QScrollBar::add-page{
background:transparent;
}
QScrollBar::sub-page{
background:transparent;
}
QScrollBar::sub-line{
background:transparent;
}
QScrollBar::add-line{
background:transparent;
}
一般也可以使用QPalette
QPalette palette;
palette.setBrush(QPalette::WindowText, QBrush(Qt::white));
check_box->setPalette(palette);
check_box->setStyleSheet("color:white");
调色板类QPalette提供了颜色角色(color roles)的概念,指当前界面中颜色的职责,通过枚举变量
QPalette::ColorRole来定义,比较常用的角色有:
QPalette::Window
QPalette::WindowText
QPalette::Base
QPalette::Text
QPalette::Button
QPalette::ButtonText