Форум сайта python.su
Дбавил список выбора но теперь не запускается. Где ошибка?
#!/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()
Офлайн
Вместо
app = wx.PySimpleApp()
#создаем окно
frame=MainWindow(None, wx.ID_ANY, 'Calculator')
#запускаем "бесконечный" цикл, где будут обрабатываться события
app.MainLoop()
app = MyApp()
app.MainLoop()
Офлайн
Тогда как добавить например надпись: 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
Офлайн
У вас несоответствие отступов тела программы, правильно так:
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()
Офлайн
Evgen_irkЗделал, как сказал. При этом отображает только надпись, но не отображает список выбора.
Офлайн
Все правильно, подключен только frame (MainWindow) с надписью, а второй frame (MyFrame) не используется.
Добавьте определения self.combobox1_list и self.combobox1 в первый frame, либо запускайте на выполнение второй frame.
Офлайн