[英]Changing Fonts, Size , Background Color of Traits in TraitsUI
我正在使用TraitsUI制作GUI。 我希望能夠編輯有關GUI實際外觀的更多信息。 例如,我希望能夠更改某些Str對象的字體,更改某些框的背景顏色,使用更大的字體大小(粗體/斜體等)使某些框大得多。
這容易做到嗎? 我一直在玩下面的玩具示例。 但是我所做的所有嘗試都沒有成功。 我需要編輯視圖或項目對象來執行此操作嗎? 還是我需要創建自定義編輯器?
如果有人知道一個簡單的示例,將突出顯示如何做這些事情。
謝謝,
蒂姆
class House(HasTraits):
address = Str
bedrooms = Int
pool = Bool
price = Int
traits_view =View(
Group(Item('address', style="readonly"), Item('bedrooms'), Item('pool'), Item('price'),show_border=True)
)
hs = House()
hs.configure_traits()
我找到了解決這個問題的方法。 我同意traitsui套件在某些情況下並不會真正改變格式。 通過使用自定義處理程序訪問控制器,然后使用PyQt對象更改格式,我能夠做到這一點。
在下面單擊“池”復選框將更改背景色。 您還可以訪問其他子窗口小部件以執行更多特定任務。
如果有人知道更好/更多基於特征的方式,我將很感興趣。
from traits.api import *
from traitsui.api import *
import PyQt4
class HouseHandler(Handler):
def object_pool_changed(self,info):
if info.object.pool:
print info.ui.control
print info.ui.control.children()
qtObject = info.ui.control
palette = qtObject.palette()
qtObject.setAutoFillBackground(True)
palette.setColor(qtObject.backgroundRole(), PyQt4.QtCore.Qt.red)
qtObject.setPalette(palette)
#or with style sheets
#info.ui.control.setStyleSheet('background-color: red')
else:
info.ui.control.setStyleSheet('background-color: None')
class House(HasTraits):
address = Str
bedrooms = Int
pool = Bool
price = Int
traits_view =View(
Group(Item('address', style="readonly"), Item('bedrooms'), Item('pool'), Item('price'),show_border=True),
handler = HouseHandler()
)
hs = House()
hs.configure_traits()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.