Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kravam
быдлокодер
1704 / 891 / 45
Регистрация: 04.06.2008
Сообщений: 5,508
#1

IDE wxDev-C++, при создании кнопки на форме она почему-то становится во весь экран, почему? - C++

30.09.2014, 22:06. Просмотров 713. Ответов 12
Метки нет (Все метки)

То есть ребята не смешно ни разу. Создаю форму, кидаю кнопку, ничего не предвещает плохого. Собираю проект, запускаю- и вот кнопка размером ВО ВСЮ ФОРМУ

Этого не происходит, если на форму кинуть две кнопки, например. Тогда по запуску экзешника они сохраняют те же форму, что и в визуальном конструкторе

+++++++++++++++++++++++++++++++++++++

Что сделал:
1) Кинул кнопку A на форму, и переписал на бумажку свойства A (из окна "инспектор объектов"). То есть рассмотрел вариант когда кнопка во весь экран. Потом кинул на эту же форму вторую кнопку B, (то есть перешёл к варианту, когда кнопки сохраняют свой размер). И опять переписал на бумажку свойства A и сравнил их со свойствами из первого варианта.

Свойства A из обоих вариантов абсолютно идентичны!

2) То же сделал со свойствами формы. Сравнил их оба варианта- свойства формы равны друг другу!

Тем не менее, приложения функционируют по-разному, то кнопка во всю форму, то нет. В чём же дело, друзья? Спасибо, кто откликнется.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2014, 22:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос IDE wxDev-C++, при создании кнопки на форме она почему-то становится во весь экран, почему? (C++):

Почему при выводе в поток char* выводится весь массив символов? - C++
я немогу вот в чем разобраться есть : int main() { char v = "Fdasda"; char *p=v; cout << "\np=" << p; cout << "\n*p=" <<*p; ...

Почему MS-DOS не любит кириллицу ? (Или почему она не любит меня ?) - C++
Здравствуйте Почему MS-DOS не любит кириллицу ? У меня есть несколько консольных проектор различной сложности. Почти везде...

Почему при создании класса у абстракных классов по иерархии пусто в _vptr ? - C++
Вот что я имею ввиду:

От чего зависит скорость в Thread и почему она увеличивается при перемещении окна - C++
Здравствуйте! Создаю поток в нем бесконечный цикл. Сильно отличается скорость цикла потока от цикла программы и почему при перемещении окна...

VB6 Почему при быстром создании скроншотов с экран курсор мигает ? - Visual Basic
keybd_event VK_SNAPSHOT, 1, 0, 0 Как можно исправить это ? Не изменяя интервал на больший ?

Почему не увеличивается лайаут на весь экран? - C++ Qt
Скомпоновал два элемента столбцами, но при увеличении окна оно ну увеличивается до конца вниз, как это исправить?

12
Людвиг Бодмер
353 / 352 / 137
Регистрация: 29.03.2013
Сообщений: 866
Завершенные тесты: 4
01.10.2014, 14:08 #2
kravam, вот нашел похожую тему: http://forums.wxwidgets.org/viewtopic.php?t=39157&p=158414
Как я понял если wxFrame содержит одного потомка, то он растягивается на всю клиентскую область.
Сначала нужно создать wxPanel как потомка wxFrame, затем создать кнопку как потомка панели. К сожалению у меня нет этой среды разработки, поэтому проверить не могу.
0
kravam
быдлокодер
1704 / 891 / 45
Регистрация: 04.06.2008
Сообщений: 5,508
01.10.2014, 15:16  [ТС] #3
А вот тут написали
http://forums.wxwidgets.org/viewtopi...152114#p152114
что надо создать слоёный пирог: форма+ панель+ sizer+ кнопка и всё будет круто. Круто-то то круто, но теперь штука, называемая sizer располагает кнопку (уменьшенную до нормальных размеров, правда), как ему заблагорассудится. Выравнивает, тык скыть. То есть о том, чтобы кнопка была в том месте, куда ты её поместил изначально в визуальном конструкторе, не может быть и речи. В общем, решаю вопрос. Присоединяйтесь.
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2014, 15:37 #4
Цитата Сообщение от kravam Посмотреть сообщение
форма+ панель+ sizer+ кнопка
Без sizer никак?
0
kravam
быдлокодер
1704 / 891 / 45
Регистрация: 04.06.2008
Сообщений: 5,508
01.10.2014, 15:48  [ТС] #5
Без sizer эффект тот, что
1) панель растягивается до размеров формы (даже если в визуальном конструкторе она была меньше формы. Ну это ладно)
2) Кнопка, кинутая на панель (например, в центр панели) при выполнении экзешника помещается в левый верхний угол панели. Если будет две кнопки, значит одна над другой поместятся.

sizer-то, похоже их выравнивает, ставит то есть рядом, а не одну над другой. И происходит это уже на стадии визуального конструирования. Это хорошо, но не всегда. Например сейчас мне нужно чтобы они были там, куда я их помещу. (Пока экспериментирую с одной кнопкой.)
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2014, 16:35 #6
Цитата Сообщение от kravam Посмотреть сообщение
2) Кнопка, кинутая на панель (например, в центр панели) при выполнении экзешника помещается в левый верхний угол панели.
Не знаю, как ты делаешь. Куда поставил, туда и помещается.
0
Миниатюры
IDE wxDev-C++, при создании кнопки на форме она почему-то становится во весь экран, почему?  
kravam
быдлокодер
1704 / 891 / 45
Регистрация: 04.06.2008
Сообщений: 5,508
01.10.2014, 16:54  [ТС] #7
Ну чё, весь-то проект дашь, или ждёшь, пока я попрошу?
0
Людвиг Бодмер
353 / 352 / 137
Регистрация: 29.03.2013
Сообщений: 866
Завершенные тесты: 4
01.10.2014, 17:02 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
kravam, нашел еще, что это баг может быть. Чтобы пофиксить, надо зайти в Tools->Designer Options->Code Generation Options и снять галочки с "Use Default Position" и "Use Default Size"
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2014, 17:37 #9
Цитата Сообщение от kravam Посмотреть сообщение
Ну чё, весь-то проект дашь, или ждёшь, пока я попрошу?
Какой, нафиг, проект? Я эту библиотеку вообще не знаю (использую Qt). Установил эту среду от нечего делать, посмотреть, что за хрень, настройки по умолчанию. Проект WxWidgets Frame.
0
kravam
быдлокодер
1704 / 891 / 45
Регистрация: 04.06.2008
Сообщений: 5,508
01.10.2014, 17:40  [ТС] #10
Цитата Сообщение от Людвиг Бодмер Посмотреть сообщение
kravam, нашел еще, что это баг может быть
Похоже на то. Похоже, необходимо делать так: форма+панель+кнопка+указанные настройки. Быть может, они устанавливаются по умолчанию, а вчера я ДО ТОГО как задействовал панель, лазил туда, и все их посбивал (поустанавливал галки). Естессно, ничё не дало (без панели-то), а настройки не восстановились (галки остались).

sizer вещь полезная ДЛЯ ВЫРАВНИВАНИЯ. В главе 7 "Cross-Platform GUI Programming with wxWidgets" об этом сказано, тут перевод этой главы.

Пока остановимся на этом.
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2014, 17:44 #11
Цитата Сообщение от Людвиг Бодмер Посмотреть сообщение
надо зайти в Tools->Designer Options->Code Generation Options и снять галочки с "Use Default Position" и "Use Default Size"
Только после этого всё поудалять из формы, и поновой сделать.
0
kravam
быдлокодер
1704 / 891 / 45
Регистрация: 04.06.2008
Сообщений: 5,508
01.10.2014, 18:08  [ТС] #12
Продолжаю выводы. Если делать связку форма+кнопка, то по умолчанию "Use Default Position" и "Use Default Size" активны. Впрочем, активны они или нет, результат один и тот же- кнопка во весь размер формы. То есть без панели не обойтись.

Для полноты картины приведу конструкторов, когда настройки активированы:
C++
1
2
3
    WxPanel1 = new wxPanel(this, ID_WXPANEL1, wxDefaultPosition, wxDefaultSize);
 
    WxButton1 = new wxButton(WxPanel1, ID_WXBUTTON1, _("WxButton1"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _("WxButton1"));
и неактивированы:
C++
1
2
3
    WxPanel1 = new wxPanel(this, ID_WXPANEL1, wxPoint(0, -8), wxSize(311, 313));
 
    WxButton1 = new wxButton(WxPanel1, ID_WXBUTTON1, _("WxButton1"), wxPoint(140, 208), wxSize(75, 25), 0, wxDefaultValidator, _("WxButton1"));
0
alsav22
5431 / 4826 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.10.2014, 18:22 #13
Подсказки, в wxDev-C++, по этой библиотеке работают?
0
01.10.2014, 18:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2014, 18:22
Привет! Вот еще темы с ответами:

почему на ноутбуке с установленной виндовс 7 игрушки не на весь экран? - Ремонт ноутбуков
Скажите кто нибудь, почему на ноутбуке с установленной виндовс 7 игрушки не на весь экран? И какая лучше винда ? ХР или 7.

Монитор 23" Samsung S23B300 почему картинка в браузера не на весь экран ? - Мониторы
Ребят купил новый монитор Монитор 23" Samsung S23B300 и приходится вечно в Опере увеличивать картинку а то не на весь экран. В чем дело,...

После нажатия кнопки в первой форме, становится невидимым TextBox во второй форме - C#
у меня 2 формы .в первой форме, после нажатия кнопки открывается вторая форма. как сделать чтобы после нажатия кнопки в первой форме ,...

Почему при создании веб-страницы в FrontPage автоматически создается папка с изображениями, а при создании веб-страницы в DreamWeaver - нет? - HTML, CSS
Если я создаю веб-страницу в FrontPage и называю ее, например, page.html, то автоматически создается папка page.files, где хранятся все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru