如何在 TraitsUI 中使用 sheet 样式的 Qt4 id 或 class 选择器?
How can I use a Qt4 id or class selector in the style sheet with TraitsUI?
我正在编辑一个使用 Qt4 的 TraitsUI 应用程序。如何使用 style_sheet?
为视图中的特定元素设置样式
我知道一个 TraitsUI Item/Button/etc 可能被翻译成几个 Qt 小部件。我只是不知道如何引用特定元素。是否有一种合适的方式来设置所创建的特定 QLabel/QPushButtn/etc 的样式?我很乐意为创建的小部件分配 ID 或 class 并使用单独的样式 sheet 或在创建 Item/Button/etc 时指定样式的方法。
因此,例如,这是控制器中的一个简单视图,其中 style_sheet 将两个输入元素都涂成黄色。我希望能够以不同的方式设置这两个项目的样式。我该怎么做?
def traits_view(self):
style_sheet = '''
QLineEdit { background: yellow }
'''
return QtView(
Item('object.name'),
Item('object.age'),
style_sheet=style_sheet)
Item
可以单独使用 style_sheet
参数,因此您可以为每个项目创建单独的样式表,如示例的扩展所示:
from traits.api import HasStrictTraits, Int, String
from traitsui.api import Item
from traitsui.qt4.extra.qt_view import QtView
class MinimalWorkingExample(HasStrictTraits):
name = String
age = Int
def traits_view(self):
style_sheet_name = '''
QLineEdit { background: yellow }
'''
style_sheet_age = '''
QLineEdit { background: green }
'''
return QtView(
Item('object.name', style_sheet=style_sheet_name),
Item('object.age', style_sheet=style_sheet_age),
)
if __name__ == '__main__':
mwe = MinimalWorkingExample(name='Steven', age=32)
mwe.configure_traits()
产生下面的 UI:
我正在编辑一个使用 Qt4 的 TraitsUI 应用程序。如何使用 style_sheet?
为视图中的特定元素设置样式我知道一个 TraitsUI Item/Button/etc 可能被翻译成几个 Qt 小部件。我只是不知道如何引用特定元素。是否有一种合适的方式来设置所创建的特定 QLabel/QPushButtn/etc 的样式?我很乐意为创建的小部件分配 ID 或 class 并使用单独的样式 sheet 或在创建 Item/Button/etc 时指定样式的方法。
因此,例如,这是控制器中的一个简单视图,其中 style_sheet 将两个输入元素都涂成黄色。我希望能够以不同的方式设置这两个项目的样式。我该怎么做?
def traits_view(self):
style_sheet = '''
QLineEdit { background: yellow }
'''
return QtView(
Item('object.name'),
Item('object.age'),
style_sheet=style_sheet)
Item
可以单独使用 style_sheet
参数,因此您可以为每个项目创建单独的样式表,如示例的扩展所示:
from traits.api import HasStrictTraits, Int, String
from traitsui.api import Item
from traitsui.qt4.extra.qt_view import QtView
class MinimalWorkingExample(HasStrictTraits):
name = String
age = Int
def traits_view(self):
style_sheet_name = '''
QLineEdit { background: yellow }
'''
style_sheet_age = '''
QLineEdit { background: green }
'''
return QtView(
Item('object.name', style_sheet=style_sheet_name),
Item('object.age', style_sheet=style_sheet_age),
)
if __name__ == '__main__':
mwe = MinimalWorkingExample(name='Steven', age=32)
mwe.configure_traits()
产生下面的 UI: