Формирование ultimatelistctrl в wxpython - PullRequest
1 голос
/ 20 апреля 2020

Я хотел бы внести небольшие изменения в макет и не знаю, возможны ли они.

Вот мой ultimatelistctrl с заголовком

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()
  1. Я бы хотел, чтобы доска выбора была черной
  2. Мне бы хотелось, чтобы граница выбора была без круглых краев. Оно должно быть просто go прямо до конца окна и никакой горизонтальной линии вообще не должно быть видно. Альтернативно нет закругленных краев, бутонов максимально острых краев.
  3. Разделители между columsn в заголовке также должны быть синего цвета.
  4. Строка под заголовком. Но больше нигде.

Я не нашел конкретных вариантов по этому поводу. Могу ли я что-нибудь сделать для архивации в разумные сроки? Как вы можете видеть только его детали, поэтому я не хочу тратить на это часы. Может быть, просто не знаю, набор или флаг, который будет архивировать это.

Спасибо за вашу помощь.

...