我有以下代码:
self.NB = wx.Notebook(self.panel_1, -1, style=0)
self.NB_Partsnote= NB_Parts(self.NB,None,userId)
self.NB_Parts2note = NB_Parts2(self.NB,None,userId)
self.NB.AddPage(self.NB_Partsnote,_("Parts"))
self.NB.AddPage(self.NB_Parts2note ,_("Parts2"))
这会创建笔记本并添加2个标签。
Part2中的我有一个带有只读数据的textctrl:
self.cellPhone = wx.TextCtrl(self, -1, "", style=wx.TE_READONLY)
我想要的是self.cellPhone
有价值,然后笔记本的Parts2
标题为BOLD
我试着这样做:
class NB_Parts2(GeneralPanel):
def __init__(self,parent,poId,userId, toolbar=None):
more code...
if self.cellPhone.GetValue() <> '':
SetFont(wx.Font(8, wx.FONTFAMILY_DEFAULT,
wx.FONTWEIGHT_BOLD,
wx.FONTSTYLE_NORMAL))
但这不起作用。什么都没发生。我也试图删除这个条件,所以它总是大胆但仍然没有任何反应。
我该怎么做?
答案 0 :(得分:0)
使用本机笔记本小部件时,可以为所有选项卡设置字体,但不能为单个选项卡设置字体。调用notebook.SetFont会导致所有选项卡都变为粗体。
一种可能的解决方案是使用图像自定义每个标签中显示的内容。
import wx
app = wx.App()
frame = wx.Frame(None, size=(600, 600))
# Draw a bitmap image with normal text
notBold = wx.Bitmap(150, 40, depth=32)
dc = wx.MemoryDC()
dc.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT,
wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL,))
dc.SelectObject(notBold)
dc.Clear()
dc.DrawText("Text not bold", 5, 5)
dc.SelectObject(wx.NullBitmap)
# Draw a bitmap image with bold text
withBold = wx.Bitmap(150, 40)
dc = wx.MemoryDC()
dc.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT,
wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD,))
dc.SelectObject(withBold)
dc.Clear()
dc.DrawText("Text BOLD", 5, 5)
dc.SelectObject(wx.NullBitmap)
# wx.Notebook needs a wx.ImageList to set images from
# Notice images must be at least the size set by wx.ImageList.__init__
imgList = wx.ImageList(150, 40)
imgList.Add(notBold)
imgList.Add(withBold)
panel = wx.Panel(frame)
notebook = wx.Notebook(panel)
notebook.SetImageList(imgList)
notebook.AddPage(wx.Panel(notebook), "")
notebook.SetPageImage(0, 0) # notBold
notebook.AddPage(wx.Panel(notebook), "")
notebook.SetPageImage(1, 1) # withBold
notebook.AddPage(wx.Panel(notebook), "Image not required")
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(notebook, proportion=1, flag=wx.EXPAND)
panel.SetSizerAndFit(sizer)
frame.Show()
app.MainLoop()
答案 1 :(得分:0)
除了Jake的回答,您还可以尝试使用FlatNotebook或AuiNotebook来获得您想要的效果。文档:
https://wxpython.org/Phoenix/docs/html/wx.lib.agw.flatnotebook.html#module-wx.lib.agw.flatnotebook
安德烈。