关于qt 开发的灵异事件
1, styleSheet(样式表) 不能与 palette (调色板) 混用;
后果:程序中断
2: 在lamda 表达式中 尽量不要对ui进行操作
后果 :轻则达不到想要的效果,例 在labmda 表达式中使用 stackWidget 显示一个页面, 他会导致这个页面是顶窗口(没有父窗口)
重则 程序中断
3:在关于设置 设置样式表的问题
例如设置QScrolBar的样式表时
错误示范:
// 垂直滚动条
ui->tableWidget->setStyleSheet("QScrollBar{background:transparent; width: 10px;}"
"QScrollBar::handle{background:lightgray; "
"border:2px solid transparent; border-radius:5px;}"
"QScrollBar::handle:hover{background:gray;}"
"QScrollBar::sub-line{background:green;}"
"QScrollBar::add-line{background:black;}");
// 水平滚动条
ui->tableWidget->setStyleSheet("QScrollBar{background:red; height:10px;}"
"QScrollBar::handle{background:lightgray; border:2px solid transparent; border-radius:5px;}"
"QScrollBar::handle:hover{background:gray;}"
"QScrollBar::sub-line{background:green;}"
"QScrollBar::add-line{background:black;}");
这样会导致垂直滚动条及时设置了显示, 但在程序运行时还是显示不了因为上面设置的样式表被下面的样式表覆盖了
正确的有二种
- 整合一下, 使用一次setStyleSheeet()
- 使用ui界面的setStyleSheet 或者 使用文件保存样式表