Qt Designer中QTableWidget设置border-radius圆角不生效是什么原因?
QTableWidget圆角样式设置失效解决方案
QTableWidget是QAbstractScrollArea的派生类,自带的视口(viewport)部件默认会填充整个控件区域,且背景默认不透明,会遮挡住QTableWidget本体设置的圆角效果,同时控件默认自带的边框框架也会覆盖圆角样式,这就是同一份样式在QPushButton、QLabel上生效但在QTableWidget上不生效的原因。
你可以使用如下修改后的样式表实现圆角效果:
QTableWidget{ background-color: rgb(255,255,255); border-radius:5px; font: 6pt; border: none; /* 关闭控件默认边框 */ } /* 视口设置透明背景,同步圆角裁剪 */ QTableWidget::viewport{ border-radius: 5px; background-color: transparent; } /* 如需保留边框可补充以下规则,不需要可删除 */ QTableWidget{ border: 1px solid #e0e0e0; } /* 如需表头也适配圆角,补充以下规则 */ QHeaderView::section:first{ border-top-left-radius: 5px; } QHeaderView::section:last{ border-top-right-radius: 5px; }
额外注意事项
- 若设置完成后仍有边角显示异常,可以在Qt Designer中选中对应QTableWidget控件,在属性面板找到
frameShape选项,设置为NoFrame,彻底关闭默认框架样式。 - 若控件带有滚动条,滚动条默认贴合控件边缘,不会影响圆角显示,如需调整滚动条样式可单独添加QScrollBar相关样式规则。
内容的提问来源于stack exchange,提问作者Akram Baklouti
相关产品推荐
相关产品推荐

