Найти - Пользователи
Полная версия: wx.Python
Начало » GUI » wx.Python
1 2 3
n2b
Разрешения еще одна проблема…
Есть модуль1 и модуль2. Оба построены на классах wx.Frame. Из модуль1 я по кнопке показываю модуль2 Show(), при этом модуль1 не закрывается, модуль1 главное окно программы.
В модуле2 две кнопки, ок и отмена. Вопрос - как мне в модуле1 понять какая кнопка была нажала в модуле2.
doza_and
n2b
Вопрос - как мне в модуле1 понять какая кнопка была нажала в модуле2.
Можно установить поле - результат либо в объекте типа модуль1 либо в объекте типа модуль2 как вам больше нравится :). посмотрите примеры использования диалогов в примерах wxpython
n2b
doza_and
Можно установить поле - результат либо в объекте типа модуль1 либо в объекте типа модуль2 как вам больше нравится . посмотрите примеры использования диалогов в примерах wxpython
Я прежде чем написать бился над этим часа два.
Поле результат получается при использовании ShowModal(). То есть, я пишу frame = module1, result = frame.ShowModal() - тогда все будет так как ты говоришь, но у wx.Frame нет ShowModal(), ShowModal() есть только у wx.Dialog, а у меня wx.Frame и у него только Show() - а он выдает только True и False и аналогичным образом через поле результат не работает почему-то.
n2b
Решил проблему переписав модуль на wx.Dialog, появилось еще пара проблем в связи с этим, но решил сам костылями… =)
doza_and
1 не надо костылями - обычно есть нормальные решения.
2 frame.my_special_custom_value=1 не работает?
n2b
doza_and
1 не надо костылями - обычно есть нормальные решения.
2 frame.my_special_custom_value=1 не работает?
1. Дак может это и не костыли, может по другому и нельзя сделать и то что сделал я является самым нормальным решением… :) Если я буду сюда постить каждый вопрос, который сам решил/могу решить, то это целый форум новый открывать надо.
2. У меня все переменные это выбор пользователя и на момент инициализации этих переменных ВООБЩЕ не существует, и начинают существовать только когда юзер что-то напечатает или выберет в чойсе(я так и не понял как сделать так, например, юзер напечатал в поле, чтобы это СРАЗУ попадало в переменную, а не ожидало кнопки OK или чекбокса…), поэтому изначально так не получается сделать (кстати, вот тут-то я и сделал костыль(наверно), но работает и очень правильно работает.
n2b
Преддиплом защитил, щас проект доделываю до диплома :)

Появилась новая проблема, на этот раз уже с wx.ListCtrl:

Мой ListControl.
class Results(wx.Frame): 
def __init__(self, rows):
wx.Frame.__init__(self, None, -1,"wx.ListCtrl in wx.LC_REPORT mode")
self.list = wx.ListCtrl(self, -1, style=wx.LC_REPORT)
columns = [u'Не несущие информацию значения', u'Не соответствующие формату значения', u'Значение уровня шума',
u'Полнота данных', u'Идентифицируемость', u'Согласованность', u'Унификация', u'Оперативность',
u'Противоречивость', u'Достоверность', u'Степень классификации', u'Степень структуризации', u'Итоговый процент оценки качества данных']
for col, text in enumerate(columns):
self.list.InsertColumn(col, text)
for item in rows:
index = self.list.InsertStringItem(sys.maxint, str(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)
На главное окно (модуль mainW) я хочу поместить вкладку, а во вкладку уже лист контрол - как это сделать?
Помещаю обычно так (пример вкладки с гридом):
        self.SourceTab = wx.Panel(self.Tabs, -1)
self.Tabs.AddPage(self.SourceTab, 'SourceTable', -1)
mygrid=wx.grid.Grid(self.SourceTab, -1)
Как лист контрол поместить - ума не приложу… =\
n2b
С этим потом разберусь. Тут новая фигня…

#module1 -- 1 из методов класса
def OnConnectBtn(self, event):
self.dsn = [self.ip, self.port, self.sid]
self.dbdata = [self.login, self.passw]
self.Close()
#module2 -- получение dbdata из модуля1
def ConnectDB(self, event):
print "connecting to db"
self.frame = connectdb.connectDB()
self.frame.Show()
AttributeError: ‘connectDB’ object has no attribute ‘dbdata’

Что за чушь? Почему так?
Piton23
Ну значит у объекта connectDB нет свойства или метода dbdata когда ты к нему обращаешься, смотри внимательней где объект создается и есть ли там свойство/метод перед непосредственным обращением
n2b
Piton23
Ну значит у объекта connectDB нет свойства или метода dbdata когда ты к нему обращаешься, смотри внимательней где объект создается и есть ли там свойство/метод перед непосредственным обращением
100% есть метод.
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