Найти - Пользователи
Полная версия: Вопросы по панели, сайзеру и комбобоксу
Начало » Python для новичков » Вопросы по панели, сайзеру и комбобоксу
1 2
tumanovalex
Стал пробовать создать оболочку для своей программы. Начал с выбора диска (пока без опроса системы на предмет наличия дисков и их типов)
1.При запуске такого кода в левом верхним углу появляется небольшой серый прямоугольник (от оператора panel = wx.Panel(self)). Если я убираю этот оператор, то прямоугольник исчезает, но комбобокс растягивается на весь экран. Раньше после установки панели я использовал радиобокс (http://python.su/forum/viewtopic.php?id=4222), ничего подобного не замечал. Что я делаю неправильно?
 # -*- coding: utf-8 -*-
import wx
class MainWindow(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, wx.ID_ANY, title, style = wx.DEFAULT_FRAME_STYLE | wx.MAXIMIZE)
panel = wx.Panel(self)
diskletter = [u'C', u'D']
cbdisk = wx.ComboBox(self, 500, u'С', (10, 80), wx.DefaultSize, diskletter, wx.CB_DROPDOWN)
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = MainWindow(None, -1, u'Определение параметров диска')
frame.Show(True)
app.MainLoop()
2. Если в указанном выше коде использовать сайзер:
 sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(cbdisk, 0, wx.LEFT|wx.RIGHT|wx.BOTTOM|wx.EXPAND, 5)
self.SetSizer(sizer)
sizer.Fit(self)
self.Layout()
то окно по умолчанию сворачивается к размеру элемента управления. Для его раскрытия нужно два раза щелкнуть на среднем элементе управления размера окна. Можно ли сделать так, чтобы сайзер помогал компоновать элементы управления в фрейме, но при запуске программы окно бы максимизировалось?
regall
блин, нецжели так трудно создавать темы в соответствующих разделах =(
сор за оффтоп…
tumanovalex
Я посчитал, что это вопросы новичка и выносить их в другие разделы не надо (другим может быть неинтересно). Если вопросы новичков можно размещать и в других разделах (по тематике вопросов), то я готов.
regall
Я думаю, что это тебе поможет: http://python.su/forum/viewtopic.php?id=3574.
Очень хорошая статья про сайзеры.
tumanovalex
Спасибо большое! Очень хорошая статья.
pyuser
Печально, что вы не воспользовались моим советом посмотреть демонстрашку :(
Кроме работы с БД там есть ответы практически на все вопросы… или то, что позволит правильно задать вопрос

немножко не по теме… в свое время меня просто распирало от всяких восточных учений… однажды я натолкнулся на потрясающую фразу, (вольный перевод). … ОТВЕТ ГОТОВ. ГОТОВ ЛИ ТВОЙ ВОПРОС… (да простят меня модераторы за крик)
PooH
Ребят, у кого сохранился перевод “wxPython in action”, киньте уже человеку книжку. Смотреть больно на его мучения. у меня просто нет, я английский вариант читал.
tumanovalex
Видимо, должно пройти какое-то время для того, чтобы я почувствовал идеологию wxPython (сейчас мне это больше всего надо, поскольку нужно сделать интерфейс), а потом, видимо, и питона как такового. Что-то действительно тяжеловато у меня это дело проходит. Пока, наверное, мне лучше не искать ответы в форуме на частные вопросы, а поизучать литературу и демонстрации и самому поэкспериментировать с кодом. А вопросы задавать, когда после долгих и продолжительных мучений ничего придумать не смогу. Спасибо за сочувствие к моим мучениям и терпение.
hellslade
tumanovalex
Вы неправильно указываете parent у combobox. При создании контейнера (wxPanel именно им и является), сразу после инициализации фрейма, он растягивается на весь фрейм(где-то я уже это писал :) Остальные виджеты должны находиться именно в этом контейнере (панели в вашем случае)! Вот ее и указывайте в качестве родителя других виджетов.
Читайте wxPython in action, смотрите демки, экспериментируйте :)
tumanovalex
Спасибо большое, я понял. Сейчас я пытаюсь разобраться с сайзерами и другими элементами управления. Все очень интересно, но не все понятно. Когда пойму, что сам не могу разобраться, буду задавать вопросы.
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