инициализация контроллов (wx c++ vs2017

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
genx74
Earned a small fee
Earned a small fee
Posts: 19
Joined: Sat Feb 11, 2023 6:14 am

Re: инициализация контроллов (wx c++ vs2017

Post by genx74 »

Привет. Благодарю.
По поводу железа - Х3, ram 8Gb
Я просто думал это неправильно дублировать векторы и гонять данные туда-сюда.
Вектор типа <int> это просто для примера.
На самом деле это векторы структур. И задача формы-диалога, отобразить данные, переключатся между item данных, принять от пользователя изменение данных.
Destroy это я просто на память написал кусок из кода.
Диалог у меня создается MyDialog* dlg = new MyDialog(...);
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7449
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: инициализация контроллов (wx c++ vs2017

Post by ONEEYEMAN »

Доброго времени суток,
Данные не дублируются.
Наоборот - диалог не должен знать ничего об окружающей среде. Так работает С++.

Вектор приватный а значит никто больше его не сможет менять.

Что касается создания диалога:
В 99.9999% случаев диалог создаётся на стэке без всяких принтеров.
Создание диалога on the heap , как у Вас покрывает 0.000000001 % случаев когда есть необходимость немодального диалога или абсолютно уникального сценария.

Спасибо.
genx74
Earned a small fee
Earned a small fee
Posts: 19
Joined: Sat Feb 11, 2023 6:14 am

Re: инициализация контроллов (wx c++ vs2017

Post by genx74 »

Привет!
Переделал код с учетом Ваших примеров.
Всё отлично работает
Спасибо
genx74
Earned a small fee
Earned a small fee
Posts: 19
Joined: Sat Feb 11, 2023 6:14 am

Re: инициализация контроллов (wx c++ vs2017

Post by genx74 »

Привет!
Разбираюсь с wxBusyInfo
Почему то оно появляется не в центре, как обычно по умолчанию.
Оно вообще появляется и не в центре и не в левом верхнем углу, и не в координатах родительского окна, не понятно по какому принципу.

Как-нибудь можно настроить default в центре экрана?
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7449
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: инициализация контроллов (wx c++ vs2017

Post by ONEEYEMAN »

Доброго времени суток,
А в примере окно где появляется?
Пробовали вызывать Center() or CenterOnScreen() для этого класса?

Спасибо.
genx74
Earned a small fee
Earned a small fee
Posts: 19
Joined: Sat Feb 11, 2023 6:14 am

Re: инициализация контроллов (wx c++ vs2017

Post by genx74 »

Привет

У него нет такого метода
wxBusyInfo info(_("инициализация..."), this);

Появляется слева то выше то ниже то от самого края то ближе к центру, не пойму от чего зависит. У родительского окна координаты постоянные.
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7449
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: инициализация контроллов (wx c++ vs2017

Post by ONEEYEMAN »

Доброго времени суток,
А как в примере?

Спасибо.
genx74
Earned a small fee
Earned a small fee
Posts: 19
Joined: Sat Feb 11, 2023 6:14 am

Re: инициализация контроллов (wx c++ vs2017

Post by genx74 »

Привет

О каком примере вы говорите?
Единственный пример который я нашел в учебнике, вот

#include “wx/busyinfo.h”
wxWindowDisabler disableAll;
wxBusyInfo info(wxT(“Counting, please wait...”), parent);
for (int i = 0; i < 1000; i++)
{
DoCalculation();
}

Я так и сделал. Создается главное окно wxFrame. В конструкторе при создании экземпляра вызывается функция для загрузки данных. Данные могут загружаться 5-15секунд, чтобы пользователь знал что программа запущена и работает в начале этой функции я и создаю окно info, при выходе из функции оно уничтожается. Всё. Окно появляется у левого края экрана чуть выше середины. Главное окно программы появляется в тех координатах, где оно было закрыто последний раз. Т.е. программа не разворачивается на всё окно и всегда AlwaysTop, висит над Excel и пользователь это окно в процессе работы может перетащить в любое место экрана где ему удобней, ну и чтобы каждый раз при старте программы пользователь не дергал ее с центра экрана в нужную ему сторону я сделал чтобы при выходе координаты окна сохранялись. Таким образом программа стартует в том месте где ее оставляет пользователь при завершении работы.
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7449
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: инициализация контроллов (wx c++ vs2017

Post by ONEEYEMAN »

Доброго времени суток,
Я говорю прго пример dialogs который находится в каталоге samples\dialogs.

Спасибо.
Post Reply