Nano Hash - криптовалюты, майнинг, программирование

Я не знаю, как установить панели + сетку в кадрах с помощью wxpython

У меня есть этот код Python моя проблема с wxpython Я использую последний wxpython с Python 2.7.

Что мне делать, если я хочу использовать закомментированный код и использовать больше панелей с видимой сеткой?

Я пробовал это разными способами, и я совершенно не могу ничего сделать. Проблема в том, что приложение вылетает или не отображается должным образом.

import wx
import wx.grid as gridlib
class MyGrid(gridlib.Grid):
    """"""

    #----------------------------------------------------------------------
    def __init__(self, parent):
        """Constructor"""
        gridlib.Grid.__init__(self, parent)
        self.CreateGrid(2, 3)


        # test all the events

//Code for events

########################################################################
class MyForm(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, parent=None, title="An Eventful Grid",size=(700,700))
        p = wx.Panel(self)

        # IF I UNCOMMNT THIS ,IT DOESNT LOADS THE WINDOW OR GRID APPEARS CORRUPTED
        #self.panel = p1 = wx.Panel(self,pos=(0,200),size=(100,100))
        #button2 = wx.Button(p1, -1, label="click me")
        #wx.StaticText(p, -1,"Right-click on the panel to show a popup menu",(100,100))
        #self.panel = p2 = wx.Panel(self,pos=(200,200),size=(400,200))
        myGrid = MyGrid(p)


        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(myGrid, 1, wx.EXPAND)#,pos=(200,200)
        #sizer.Add(p2, 2, wx.EXPAND)
        p.SetSizer(sizer)

if __name__ == "__main__":
    app = wx.PySimpleApp()
    frame = MyForm().Show()
    app.MainLoop()
25.08.2013

  • Можете ли вы быть более конкретным и включить минимальный пример, показывающий проблему в вашем вопросе? Прочтите о разметке, чтобы узнать, как внедрить свой код (оранжевый вопросительный знак). 25.08.2013

Ответы:


1

Я отредактировал ваш код, чтобы заставить его работать, и вот вывод и код:

введите здесь описание изображения

import wx
import wx.grid as gridlib
class MyGrid(gridlib.Grid):
    def __init__(self, parent):
        """Constructor"""
        gridlib.Grid.__init__(self, parent)
        self.CreateGrid(2, 3)

class MyForm(wx.Frame):
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, parent=None, title="An Eventful Grid",size=(700,700))
        p = wx.Panel(self)

        button2 = wx.Button(p, -1, label="click me")
        st = wx.StaticText(p, -1,"Right-click on the panel to show a popup menu")
        p2 = wx.Panel(p, size=(400,200))
        p2.SetBackgroundColour((100, 0, 0))
        myGrid = MyGrid(p)


        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(button2)
        sizer.Add(st)
        sizer.Add(myGrid, 1, wx.EXPAND)#,pos=(200,200)
        sizer.Add(p2, 2, wx.EXPAND)
        p.SetSizer(sizer)

if __name__ == "__main__":
    app = wx.PySimpleApp()
    frame = MyForm().Show()
    app.MainLoop()

Я надеюсь, что это сработает для вас, так как я не тратил время, чтобы попытаться угадать, что именно вы собираетесь делать.

Несколько вещей, которые были проблематичными в вашем оригинале:

1) не рекомендуется комбинировать абсолютные позиции и размеры с сайзерами. Просто придерживайтесь одного или другого (желательно сайзеров).

2) У вас была куча противоречивых мест и родителей. Например, в рамку была помещена панель p (т.е. p = wx.Panel(self... ), а затем еще одна (т.е. p1 = wx.Panel(self,... ), но потом вы не сказали, как добавить их в сайзер. Во-первых, не все должно иметь собственную панель, поэтому я просто добавил кнопку напрямую. Что еще более важно, вам нужно добавить все в сайзер и быть последовательным в настройке правильного родителя.

Если, скажем, вам нужна кнопка и статический текст на отдельной панели (скажем, p5, с p в качестве родителя), вы можете сделать это, создав панель, добавив кнопку и статический текст, а затем добавив панель p5 к размерчику.

25.08.2013
  • Круто, я новичок во всем этом, спасибо за ваш про-код! 25.08.2013
  • Рад помочь. Если вы считаете, что это полностью отвечает на ваш вопрос, вы можете нажать на галочку, чтобы принять его. Это сэкономит время другим людям, поэтому они не будут читать ваш вопрос и мой ответ, видя, был ли на него дан ответ. 25.08.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..