首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移除QLineEdit边界

移除QLineEdit边界
EN

Stack Overflow用户
提问于 2014-02-10 18:59:44
回答 2查看 9.9K关注 0票数 9

我有一堆想要删除边框的QLineEdit框。理想情况下,我只想用一行代码来完成这个任务,而不是为每个QLineEdit框设置任何边框。我正在尝试使用QLineEdit::setFrame(false);,但这会返回非静态成员函数的非法调用。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-10 19:12:35

可以为应用程序或这些行编辑的父级设置样式表:

代码语言:javascript
复制
window()->setStyleSheet("QLineEdit { border: none }");

代码语言:javascript
复制
window()->setStyleSheet("QLineEdit { qproperty-frame: false }");

后者相当于执行以下代码:

代码语言:javascript
复制
for(auto ed : window()->findChildren<QLineEdit*>())
  ed->setFrame(false);

window()指的是QWidget * QWidget::window() const

由于您希望在应用程序范围内执行此操作,因此可以简单地在应用程序上设置样式表:

代码语言:javascript
复制
qApp->setStyleSheet("QLineEdit { qproperty-frame: false }");

您可以进一步使用CSS选择器来覆盖某些对象上的框架。你已经掌握了CSS的力量。

票数 21
EN

Stack Overflow用户

发布于 2014-02-10 19:03:21

为此请使用QLineEdit::setFrame()。但是的,这不是一个静态的方法。所以,您必须对一个对象调用它:myLineEdit->setFrame( false );

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21685629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档