我有一堆想要删除边框的QLineEdit框。理想情况下,我只想用一行代码来完成这个任务,而不是为每个QLineEdit框设置任何边框。我正在尝试使用QLineEdit::setFrame(false);,但这会返回非静态成员函数的非法调用。有什么建议吗?
发布于 2014-02-10 19:12:35
可以为应用程序或这些行编辑的父级设置样式表:
window()->setStyleSheet("QLineEdit { border: none }");或
window()->setStyleSheet("QLineEdit { qproperty-frame: false }");后者相当于执行以下代码:
for(auto ed : window()->findChildren<QLineEdit*>())
ed->setFrame(false);window()指的是QWidget * QWidget::window() const。
由于您希望在应用程序范围内执行此操作,因此可以简单地在应用程序上设置样式表:
qApp->setStyleSheet("QLineEdit { qproperty-frame: false }");您可以进一步使用CSS选择器来覆盖某些对象上的框架。你已经掌握了CSS的力量。
发布于 2014-02-10 19:03:21
为此请使用QLineEdit::setFrame()。但是的,这不是一个静态的方法。所以,您必须对一个对象调用它:myLineEdit->setFrame( false );
https://stackoverflow.com/questions/21685629
复制相似问题