1. Есть ListControl. Для него реализован собственный класс:
class Results():
def __init__(self, main, columns, rows):
self.main = main
self.list = wx.ListCtrl(self.main.panel2, 0, wx.DefaultPosition, wx.DefaultSize, style=wx.LC_REPORT)
self.columns = columns
for col, text in enumerate(columns):
self.list.InsertColumn(col, text)
for item in rows:
index = self.list.InsertStringItem(sys.maxint, item[0])
for col, text in enumerate(item[1:]):
self.list.SetStringItem(index, col+1, text)
self.list.SetColumnWidth(0, wx.LIST_AUTOSIZE)
self.list.SetColumnWidth(1, wx.LIST_AUTOSIZE)
self.list.SetColumnWidth(2, wx.LIST_AUTOSIZE)
self.list.SetColumnWidth(3, wx.LIST_AUTOSIZE_USEHEADER)
Мне нужно, чтобы нажимая два раза левой кнопкой(или правой, или три раза левой, это не важно) на определенной строке я получал все данные этой строки (т.е. я получал бы те данные что записал туда.
Также я не могу понять, есть ли у всех строк занесенных в listctrl свой уникальный номер при нахождении в нем?
И еще я не могу понять, почему при первом создании листконтрола и обращении к классу с данными которые необходимо занести в листконтрол, надо данные иметь вот в таком виде: [], а когда уже впоследствии записываешь данные в листконтрол данные уже имеют вид обычного списка.
p.s. Повторно записываю данные в список следующей функцией:
self.listctrl.Append(dannie)
То есть, например, у меня листконтрол в режиме wx.LC_REPORT, там колонки и первая колонка “Дата и время”, и чтобы, скажем, при нажатии именно на эту колонку все записи сортировались в соотвествии с датой и временем записанным в данных листконтрола. Здесь же вопрос, как обращаться к конретной КОЛОНКЕ, есть ли у неё id или что-то уникальное (хотя бы порядковый номер)?
2. Есть вкладка в notebook'e. Во вкладке grid. Не получается сделать так, чтобы при двойном щелчке на вкладку с гридом, открывалось окно в полноэкранный режим в котором был бы тот же самый грид что и во вкладке.
Много читал wx.python in action, Coody Precord – cook book, ничего путного и нужного не нашел, а сам понять уже дня два не могу, добиваюсь вроде чего-то, но потом все равно все рушится. Рушится в основном на получении уникального номера записи в листконтроле, уникального номера колонки тогоже листконтрола, а в гриде, не получается сделать wx.popwindowXY(), а точней не получается указать ему frame.