Я хотел бы внести небольшие изменения в макет и не знаю, возможны ли они.
Вот мой ultimatelistctrl с заголовком
# -*- coding: utf-8 -*-
"""
Created on Mon Apr 20 13:00:09 2020
@author: Odatas
"""
import wx
from threading import Thread
from wx.lib.agw import ultimatelistctrl as ULC
class Uploader(wx.App):
def __init__(self,redirect=False,filename=None):
wx.App.__init__(self,redirect,filename)
self.frame=wx.Frame(None)
self.width=905
self.header=wx.Font(16, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, "Arial")
self.ListText=wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, "Arial")
#panel
self.panel=wx.Panel(self.frame)
self.panelForHeading=wx.Panel(self.panel,-1,size=(self.width,50))
self.panelForHeading.SetBackgroundColour((91,155,213))
#widgets
self.NameOfDatabase=wx.StaticText(self.panelForHeading,-1)
self.NameOfDatabase.SetLabel(' Some Header')
self.NameOfDatabase.SetFont(self.header)
#ultimatelist
self.FileList=ULC.UltimateListCtrl(self.panel,size=(self.width,600),agwStyle=wx.LC_REPORT|ULC.ULC_USER_ROW_HEIGHT|ULC.ULC_SINGLE_SEL|ULC.ULC_BORDER_SELECT|ULC.ULC_AUTO_TOGGLE_CHILD)
self.FileList.SetUserLineHeight(30)
self.FileList.SetHeaderHeight(40)
#First Column
info=ULC.UltimateListItem()
info._mask=wx.LIST_MASK_TEXT|wx.LIST_MASK_IMAGE|wx.LIST_MASK_FORMAT|ULC.ULC_MASK_CHECK
info._image=[]
info._format=0
info._text="Select"
info._kind=1
self.FileList.InsertColumnInfo(0,info)
self.FileList.SetColumnWidth(0,100)
#Second Column
info=ULC.UltimateListItem()
info._mask=wx.LIST_MASK_TEXT|wx.LIST_MASK_IMAGE|wx.LIST_MASK_FORMAT|ULC.ULC_MASK_CHECK
info._image=[]
info._format=0
info._text="Name"
self.FileList.InsertColumnInfo(1,info)
self.FileList.SetColumnWidth(1,300)
#Third Column
info=ULC.UltimateListItem()
info._mask=wx.LIST_MASK_TEXT|wx.LIST_MASK_IMAGE|wx.LIST_MASK_FORMAT|ULC.ULC_MASK_CHECK
info._image=[]
info._format=0
info._text="Type"
self.FileList.InsertColumnInfo(2,info)
self.FileList.SetColumnWidth(2,150)
#fourth Column
info=ULC.UltimateListItem()
info._mask=wx.LIST_MASK_TEXT|wx.LIST_MASK_IMAGE|wx.LIST_MASK_FORMAT|ULC.ULC_MASK_CHECK
info._image=[]
info._format=0
info._text="Date modified"
self.FileList.InsertColumnInfo(3,info)
self.FileList.SetColumnWidth(3,150)
#Fifth Column
info=ULC.UltimateListItem()
info._mask=wx.LIST_MASK_TEXT|wx.LIST_MASK_IMAGE|wx.LIST_MASK_FORMAT|ULC.ULC_MASK_CHECK
info._image=[]
info._format=0
info._text="Status"
self.FileList.InsertColumnInfo(4,info)
self.FileList.SetColumnWidth(4,200)
#sizer
self.TopLevelSizer=wx.BoxSizer(wx.VERTICAL)
self.HeaderSizer=wx.BoxSizer(wx.VERTICAL)
#add widget to sizer
self.HeaderSizer.AddStretchSpacer()
self.HeaderSizer.Add(self.NameOfDatabase,0, wx.ALIGN_BOTTOM | wx.ALIGN_LEFT | wx.ALL)
self.HeaderSizer.AddSpacer(5)
self.TopLevelSizer.Add(self.panelForHeading,0,wx.ALL)
self.TopLevelSizer.Add(self.FileList,1,wx.ALL)
self.panelForHeading.SetSizer(self.HeaderSizer)
self.panel.SetSizer(self.TopLevelSizer)
#layout
self.TopLevelSizer.Fit(self.frame)
self.panel.Layout()
self.frame.Show()
self.TestInsertList()
def TestInsertList(self):
for i in range(5):
self.FileList.InsertStringItem(i,"",it_kind=1)
self.FileList.SetItemFont(i,self.ListText)
self.FileList.SetStringItem(i,1,'File '+str(i))
if __name__=='__main__':
app=Uploader()
app.MainLoop()
- Я бы хотел, чтобы доска выбора была черной
- Мне бы хотелось, чтобы граница выбора была без круглых краев. Оно должно быть просто go прямо до конца окна и никакой горизонтальной линии вообще не должно быть видно. Альтернативно нет закругленных краев, бутонов максимально острых краев.
- Разделители между columsn в заголовке также должны быть синего цвета.
- Строка под заголовком. Но больше нигде.
Я не нашел конкретных вариантов по этому поводу. Могу ли я что-нибудь сделать для архивации в разумные сроки? Как вы можете видеть только его детали, поэтому я не хочу тратить на это часы. Может быть, просто не знаю, набор или флаг, который будет архивировать это.
Спасибо за вашу помощь.