Найти - Пользователи
Полная версия: добавить список выбора combobox + wx
Начало » GUI » добавить список выбора combobox + wx
1
a11474396
Дбавил список выбора но теперь не запускается. Где ошибка?


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

Добавьте определения self.combobox1_list и self.combobox1 в первый frame, либо запускайте на выполнение второй frame.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB