Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » добавить список выбора combobox + wx [RSS Feed]

#1 Ноя. 21, 2011 16:04:09

a11474396
От:
Зарегистрирован: 2011-11-17
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

добавить список выбора combobox + wx

Дбавил список выбора но теперь не запускается. Где ошибка?


#!/usr/bin/python
#coding=utf8

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygtk
pygtk.require('2.0')
import gtk
#подключаем wx
import wx
#создаем класс-потомок wx.Frame
class MainWindow(wx.Frame):
#__init__ - аналог конструктора c/c++
def __init__(self, parent, id, title):
#вызываем родительский метод
wx.Frame.__init__(self, parent, id, title, size=(700,500))
#первый параметр - родитель,второй - id,третий - заголовок,четвертый позиция
#создаем элемент StaticText и примсваем его к переменной text




class MyFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, ‘form title’, wx.DefaultPosition, (405, 121), style=wx.CLOSE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.RESIZE_BORDER | 0 | 0 | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX)
self.panel = wx.Panel(self, -1)



self.combobox1_list =
self.combobox1 = wx.ComboBox(self.panel, -1, ‘combobox’, (133,21), (250, 21), self.combobox1_list)


#—————————————————————————
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, ‘App’)
frame.Show(True)
self.SetTopWindow(frame)
return True


app = wx.PySimpleApp()
#создаем окно
frame=MainWindow(None, wx.ID_ANY, ‘Calculator’)
#запускаем “бесконечный” цикл, где будут обрабатываться события
app.MainLoop()



Офлайн

#2 Ноя. 22, 2011 03:02:44

Evgen_irk
От: Иркутск
Зарегистрирован: 2009-02-02
Сообщения: 45
Репутация: +  4  -
Профиль   Отправить e-mail  

добавить список выбора combobox + wx

Вместо

app = wx.PySimpleApp()
#создаем окно
frame=MainWindow(None, wx.ID_ANY, 'Calculator')
#запускаем "бесконечный" цикл, где будут обрабатываться события
app.MainLoop()
используйте ваш класс MyApp
app = MyApp()
app.MainLoop()



wxPython

Офлайн

#3 Ноя. 29, 2011 05:02:17

a11474396
От:
Зарегистрирован: 2011-11-17
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

добавить список выбора combobox + wx

Тогда как добавить например надпись: self.text_n = wx.StaticText(self, -1,'Название программы', (10, 20))

#!/usr/bin/python
#coding=utf8

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygtk
pygtk.require('2.0')
import gtk
#подключаем wx
import wx
#создаем класс-потомок wx.Frame
class MainWindow(wx.Frame):
#__init__ - аналог конструктора c/c++
def __init__(self, parent, id, title):
#вызываем родительский метод
wx.Frame.__init__(self, parent, id, title, size=(700,500))
#первый параметр - родитель,второй - id,третий - заголовок,четвертый позиция
#создаем элемент StaticText и примсваем его к переменной text

self.text_n = wx.StaticText(self, -1,'Название программы', (10, 20))



class MyFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, 'form title', wx.DefaultPosition, (405, 121), style=wx.CLOSE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.RESIZE_BORDER | 0 | 0 | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX)
self.panel = wx.Panel(self, -1)



self.combobox1_list = [u'один',u'два',u'три',u'четыре',u'пять']
self.combobox1 = wx.ComboBox(self.panel, -1, 'combobox', (133,21), (250, 21), self.combobox1_list)


#---------------------------------------------------------------------------
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, 'App')
frame.Show(True)
self.SetTopWindow(frame)
return True


app = wx.PySimpleApp()
#создаем окно
frame=MainWindow(None, wx.ID_ANY, 'Calculator')
#запускаем "бесконечный" цикл, где будут обрабатываться события
app.MainLoop()
Выдаёт ошибку
self.text_n = wx.StaticText(self, -1,'Название программы', (10, 20))
^
IndentationError: unexpected indent



Офлайн

#4 Ноя. 30, 2011 02:17:36

Evgen_irk
От: Иркутск
Зарегистрирован: 2009-02-02
Сообщения: 45
Репутация: +  4  -
Профиль   Отправить e-mail  

добавить список выбора combobox + wx

У вас несоответствие отступов тела программы, правильно так:

def __init__(self, parent, id, title):
#вызываем родительский метод
wx.Frame.__init__(self, parent, id, title, size=(700,500))
#первый параметр - родитель,второй - id,третий - заголовок,четвертый позиция
#создаем элемент StaticText и примсваем его к переменной text
self.text_n = wx.StaticText(self, -1,'Название программы', (10, 20))
и так запускать цикл на обработку событий
app = wx.PySimpleApp()
#создаем окно
frame=MainWindow(None, wx.ID_ANY, 'Calculator')
frame.Show(True)
#запускаем "бесконечный" цикл, где будут обрабатываться события
app.MainLoop()



wxPython

Офлайн

#5 Ноя. 30, 2011 14:40:10

a11474396
От:
Зарегистрирован: 2011-11-17
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

добавить список выбора combobox + wx

Evgen_irk
Зделал, как сказал. При этом отображает только надпись, но не отображает список выбора.



Офлайн

#6 Ноя. 30, 2011 23:23:44

Evgen_irk
От: Иркутск
Зарегистрирован: 2009-02-02
Сообщения: 45
Репутация: +  4  -
Профиль   Отправить e-mail  

добавить список выбора combobox + wx

Все правильно, подключен только frame (MainWindow) с надписью, а второй frame (MyFrame) не используется.

Добавьте определения self.combobox1_list и self.combobox1 в первый frame, либо запускайте на выполнение второй frame.



wxPython

Офлайн

  • Начало
  • » GUI
  • » добавить список выбора combobox + wx[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version