Монтаж фбс: Устройство фундамента ФБС, технологическая карта, план раскладки

Содержание

Монтаж ФБС блоков манипулятором | Аренда спецтехники в Челябинске

Фундаментные блоки ФБС изготавливаются исключительно из высокопрочного бетона в соответствии с требованиями ГОСТ 13579-78 и ТУ 5835-021-03984416-97  и имеют форму прямоугольного параллелепипеда. В торцовой части блоков имеются пазы, которые при монтаже заливаются раствором, обеспечивая тем самым прочность соединения.

Блоки ФБС, обладая высокой плотностью и прочностью на сжатие, морозостойкостью, водостойкостью, способны выдерживать огромные нагрузки в условиях повышенной влажности и воздействия химических компонентов. Для удобства перевозки и монтажа блоки имеют строповочные петли.

Обладающие отличными техническими характеристиками, способные выдержать температуру от -70°С до +50°С, фундаментные блоки предназначены для строительства фундаментов зданий и сооружений самого разного назначения, а также для устройства стен подвалов, неотапливаемых зданий и технических подпольев. Размеры блоков могут быть разными и варьируются от 20х20х40 весом 31,7 кг до 238х60х58 весом до 1,96 т.

Наиболее популярными в строительстве многоэтажек считаются ФБС 24.4.6-т, маркировка которого указывает на тип блока (сплошной), габаритный размер (длина, ширина, высота) и вид бетона (тяжелый).

Учитывая внушительные размеры и вес блоков, для их доставки требуется высокопроизводительная техника. Чтобы избежать лишних расходов, можно воспользоваться краном-манипулятором, представляющим собой грузоподъемную машину, состоящую из крано-манипуляторной установки (КМУ). Установка может устанавливаться на любые грузовые машины и монтироваться как за кабиной водителя, так и на заднем отделении грузовой платформы, благодаря чему возможно производить разгрузку как в кузов или прицеп самого автомобиля, так и в стоящий рядом транспорт. 

Вместе с покупкой фундаментных блоков обычно заказывают и доставку стройматериала до объекта в Челябинске, причем все в одном месте, что экономит ваше время.

Симбиоз грузовика и автокрана позволяет значительно снизить стоимость работ за счет:

  • обслуживания одного вида техники и сокращения количества топлива;
  • сокращения числа рабочих, так как для данной операции достаточно одного оператора самопогрузчика
  • отсутствия необходимости согласовывать присутствие на рабочей площадке нескольких единиц транспорта одновременно.

Краны-манипуляторы делятся на 2 вида:

  • гидроманипуляторы – только на гидравлике.
  • крановые установки  — с лебедкой и тросом.

Манипуляторы кранового типа комплектуются телескопической стрелой, обладающей дальность вылета от 2 до 27 метров.

На манипуляторах первого подвида возможно менять угол наклона секции стрелы. Таким образом, груз можно перемещать либо движением всей стрелы, либо движением ее отдельных секций. Тип конструкции Z – образный. На кранах второго вида груз перемещается лебедкой и стрелой с гидроприводом. Тип конструкции – L – образный.

В зависимости от грузоподъемности стрелы краны-манипуляторы бывают:

  • легкие – со стрелой 1.5-3 тонны
  • средние – со стрелой 5-7 тонны
  • тяжелые – со стрелой  8- 12 тонны

Для монтажа фундаментных блоков нужен манипулятор со стрелой 5-10 тонн, так как со стрелой меньшей грузоподъемности можно только разгрузить машину, но никак не монтировать фундамент. Впрочем маленькие ФБС, типа 12-4-6, вполне можно уложить.

Монтируются фундаментные блоки на различные основы, выбор которой зависит от предназначения фундамента.  Самым простым способом является укладка просто в котлован на выровненную песчаную поверхность, либо на песчаную подушку толщиной 5-10 см. Возможна укладка блоков на подготовленную заранее армоподушку. В случае если грунт неустойчивый, ФБС монтируют на уложенный заранее ленточный фундамент.

 

доставка манипулятором манипулятор перевозка манипулятором

Монтаж фундамента из ФБС — ОП «Беротек»

Монтаж фундамента из ФБС

Сегодня людям знакомы разные виды и технологии закладки фундамента. Делая выбор, нужно обязательно учитывать особенности самого здания, характеристики грунта, трудозатраты и стоимость. Но мало сделать правильный выбор. Чтобы реализовать все преимущества выбранного варианта, нужно грамотно выполнить все работы. Лишь тогда можно быть уверенным, что основание дома действительно надежно. Эта статья рассказывает об особенностях применения ж/б блоков ФБС для укладки фундамента.

Что такое стеновые блоки

ФБС — это изделия из железобетона, технические условия на которые устанавливает ГОСТ 13579-78 «Блоки бетонные для стен подвалов». Указанным стандартом определены три вида стеновых ж/б блоков:

  • ФБС — фундаментные блоки сплошные монолитные с арматурой внутри;
  • ФБВ — тоже армированные, сплошные блоки, но с вырезами под коммуникации;
  • блоки пустотные (ФБП).

При обустройстве фундаментов применяют сплошные блоки ФБС. При формировании фундамента такие блоки служат стенами подвала, поэтому их называют стеновыми.

При выборе блоков для фундамента нужно уметь ориентироваться в их параметрах, основные из которых входят в состав аббревиатуры. Например, у блока ФБС24-3-6: 24 дм — длина, 3 дм — ширина и 6 дм — высота. 

Все эти изделия могут использоваться при температуре от –70°C до +50°C.

Выбор типоразмера блока осуществляется в соответствии с параметрами будущего строения, в частности, в зависимости от толщины стен выбирается ширина блоков. Причем, толщина стен блочного фундамента может быть меньше, чем у стен дома, но свес не должен быть более 13 см, если он односторонний, а при двустороннем — не более 6 см с каждой стороны. 

При монтаже, как правило, применяют несколько типоразмеров блоков. Это упрощает выполнение необходимой перевязки швов и минимизирует остающиеся зазоры. 

Достоинства стеновых блоков, как материала для фундамента

ФБС подходят для всех природно-климатических зон и могут применяться практически на всех видах грунта. Применение блочной технологии формирования фундамента существенно упрощает, ускоряет и удешевляет строительство. 

Фундаментные блоки можно укладывать при любой погоде, а кладку стен начать сразу по окончании фундаментных работ, в отличие от ленточного монолитного фундамента.

По своим характеристикам блочный фундамент практически не уступает монолитному, а на песчаных или скальных с гравием и щебнем почвах, как утверждают и строители и частные застройщики, просто незаменим. 

Из таких блоков можно сооружать фундаменты для самых разных построек: от бань и гаражей до домов в несколько этажей. Плиты ФБС целесообразно применять при возведении заглубленных фундаментов — они хорошо противостоят подвижкам грунта, а в доме появляются дополнительные помещения.

Работы по подготовке к монтажу

Перед началом монтажа делается проект фундамента, входящий в общий комплекс работ по проектированию здания.

Ленточный фундамент, собираемый из блоков, укладывается по периметру постройки и под несущими стенами. 

Начинают с подготовительных работ. С места строительства снимается растительный слой и выполняется планировка, если участок имеет большой уклон. Ставится обноска вокруг будущего дома, причем ее нужно установить не ближе, чем в 2 метрах от планируемого края котлована. Обноска — это деревянное ограждение, к которому в дальнейшем крепится шнур при разбивке и на которое наносятся риски, определяющие положение осей. 

Далее производится разметка участка, отмечаются оси здания, места, где будут выкопаны траншеи или котлован, если планируется сделать цокольный этаж.  

Заглублять блочный фундамент рекомендуется ниже, чем уровень промерзания почвы. Рыть котлован или траншеи нужно с недобором, а затем следует выполнить зачистку и выравнивание основания грунта до уровня проектной отметки.

На песчаном грунте фундаментные блоки можно укладывать на основание, а на других — укладывают песчаную подушку или другую подложку, предусмотренную проектом. Песчаное основание тщательно утрамбовывают и проверяют его плотность. Основания это должно быть шире на 20–30 см фундаментных блоков, чтобы исключить возможность их свисание с него. 

Затем нужно выполнить разбивку, для чего следует:

  • натянуть по обноске осевые;
  • точки пересечения осевых перенести с помощью отвесов на дно котлована или траншей;
  • отмерить от этих точек расстояния, равные проектным размерам фундамента, и отметить их металлическими кольями.

Натянутый между кольями шнур-причалка должен проходить снаружи от фундамента в 2–3 миллиметрах от боковой стенки блоков.

В качестве нижнего слоя фундамента из ФБС могут использоваться подушки ФЛ из железобетона. Это увеличивает площади опоры, повышая несущую способность всего фундамента.

Чем тщательнее проведены подготовительные работы, тем успешнее будут все операции по монтажу. 

Монтаж 

Начинают монтаж с укладки, так называемых, маячных блоков, служащих ориентиром для дальнейшей работы. Они устанавливаются по углам и там, где стены здания будут пересекаться. Установив маячные блоки, по их граням натягивают причалку, а уже по ней выравнивают все промежуточные блоки. Перед переходом к следующему ряду блоков причалку поднимают. Положение блоков контролируют с помощью отвеса, опускаемого с осевых проволок, натянутых по обноске. 

Далее производят выравнивание блоков наружных и внутренних стен подвала. Контролируют горизонтальный уровень маячных блоков по нивелиру, а остальных — по причалке или по блокам, установленным ранее.

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

Для монтажа блоков используют двухсантиметровый слой цементного раствора, укладывая их вразбежку и соблюдая все нужные перевязки. Перевязка вертикальных швов для малосжимаемых грунтов не должна быть менее 40% от высоты блоков, а для просадочных, сильносжимаемых и набухающих — не менее полной высоты блока. Качественный шов получают, разравнивая раствор рейкой по рамке. Вертикальные швы по мере монтажа заполняются раствором и уплотняются.

Когда длина используемых блоков не кратна длинам сторон строения, для заполнения образовавшихся промежутков используют монолитные вставки или доборные блоки. Между блоками фундамента оставляют расстояния для прокладки инженерных коммуникаций.

Заключительный этап

Когда монтаж закончен, зазор между грунтом и внешними стенками фундамента засыпают песком, утрамбовывают, а затем поливают водой. Снаружи со всех сторон фундамент покрывают гидроизоляцией. Как только высохнет раствор, можно приступить к возведению стен.

Технология укладки фундамента из блоков ФБС достаточно трудоемка, но не особо сложна. При правильном выполнении всех операция такой фундамент прослужит много лет.


Правильный монтаж фундаментных блоков

Фундамент – один из главнейших элементов в строительстве. В будущем он будет воспринимать нагрузку от всего сооружения, поэтому требует надлежащего качества исполнения. В последнее время все большую популярность набирают фундаменты из блоков ФБС, о правильном монтаже которого будет рассказано в данной статье.

Общая информация

Фундаментное основание должно быть возведено по правильной технологии, тогда оно будет прочным и надежным. Фундаментные блоки – качественный и доступный материал, который достаточно быстро сооружается. Для максимального удобства можно предварительно задавать геометрические размеры.

Главное преимущество таких конструкций – способность выдерживать существенные перепады температур. Поэтому их можно применять в любых климатических условиях. В процессе монтажа следует быть внимательным и точным. При устройстве своими руками лучше заказать материал меньших габаритов, так как средний вес одного элемента составляет полтонны. В противном случае придется заказывать услуги грузоподъемной техники. Необходимо подобрать правильный размер ФБС – это готовый материал, который не нужно резать и обтачивать.

Перечень необходимых инструментов и правильный выбор размеров

При устройстве блочного фундамента понадобится стандартный набор инструментов. Кроме этого будут нужны:
1.    Арматура.
2.    Гидроизоляционный материал.
3.    Нивелир и строительный уровень – для контроля.
4.    Техника для подъема блоков, которые лучше всего заказывать с готовыми отверстиями.
5.    Бетонная смесь и компоненты для ее приготовления, а также бетономешалка.

Разновидность ФБС зависит от класса сооружения. Для многоквартирного дома нужны массивные блоки, так как фундамент будет воспринимать внушительные ветровые воздействия. Если основание не будет воспринимать серьезных усилий – можно использовать гораздо меньшие габариты. После окончания работ разрешается сразу приступать к возведению стен.

Кроме этого необходимо учитывать следующие характеристики:
1.    Плотность – рекомендуемое значение от 1500 до 1800 кг/м³.
2.    Фундамент должен быть шире относительно будущих стен.
3.    ФБС должны беспрепятственно входить в траншею.
4.    Глубина залегания фундамента зависит от типа и характеристик грунта.

Особенности правильного монтажа

Основные правила при монтаже фундаментных блоков:
1.    Работы рекомендуется выполнять в летнее время.
2.    Запрещено выполнять монтаж на влажную поверхность.
3.    Перед началом работ следует подготовить основание: показать оси, выполнить разбивку и выкопать траншею.
4.    Толщина песчаной подушки должна составлять от 5 до 10 см, а ширина больше фундамента на 20-30 см. Песок должен быть просеянным и уплотненным.
5.    Необходимо наличие тщательного сцепления между блоками. Цементный раствор нужен надлежащего качества.
6.    Максимальная горизонтальная погрешность – 10 мм.
7.    Фундамент нужно усиливать металлической решеткой.
8.    Все швы и стыки должны быть герметичными. Для этого используется специальная смесь.
9.    Зазоры между блоками заполняются монолитными вставками.   
10.    Максимальная высотка кладки – 5 блоков.
11.    Необходимо оставлять зазоры между бетонными блоками для проведения коммуникаций.
12.    На конечной стадии следует выполнить обязательную гидроизоляцию, устройство дренажной системы и отмостки с правильным уклоном.

Заключение

В ходе работ любые отклонения можно исправлять ломом. Рекомендуется регулярно проверять правильность монтажа нивелиром и уровнем. Если отклонения выше нормы – следует демонтировать блок и повторить монтаж. Главное придерживаться данных рекомендаций, тогда фундамент будет надежным и долговечным.

Прайс-лист (цены, стоимость) на общестроительные работы

Кирпичная кладка и бетонирование
1 Кирпичная кладка в 1/2 кирпича с армированием м2 от 650
2 Кирпичная кладка при толщине стен 250мм и более с армированием м3 от 1900
3 Кирпичная кладка черновая м3 от 1900
4 Кладка стен из газосиликатных, пенобетонных блоков м3 от 1700
5 Кирпичная кладка лицевая (облицовка) м2 от 850
6 Прорез стандартного проема в ж/б стенах м2 от 1500
7 Бетонирование (фундаментов, крылец, и т.д.) м3 от 2600
8 Бетонирование перекрытий (при высоте до 3м) м3 от 3200
Земляные работы
9 Разработка грунтов в ручную м3 от 700
10 Обратная засыпка грунтов в ручную м3 от 700
11 Разработка грунтов механизированным способом, в отвал (от 50м3) м3 от 350
12 Вывоз грунтов а/м (8-12м3) до 30 км. рейс от 2500
13 Устройство подсыпки из песка, щебня 5-20мм, керамзита м3 от 700
Монтажные работы
14 Монтаж плит перекрытия ж/б шт от 560
15 Монтаж перемычек ж/б шт от 450
16 Монтаж фундаментных блоков шт от 560
Устройство скатных крыш
17 Устройство 2-х скатной крыши без утепления с покрытием металлочерепицей (ондулином) м2 от 1100
18 Устройство 2-х скатной крыши без утепления с покрытием мягкой кровлей м2 от 1500
19 Устройство скатной крыши без утепления со слуховыми окнами 3-мя и более фронтонами м2 от 1600
Утепление и пароизоляция
20 Утепление полистирольными либо мягкими минераловатными плитами при толщ. слоя 50мм м2 от 75
21 Паро, влаго, ветро — изоляция, рулонными мембранными материалами, 1 слой м2 от 50
Укладка тротуарной плитки
22 Укладка тротуарной плитки м2 500

плюсы и минусы основания, возведение своими руками от разметки до заливки бетоном

Блоки ФБС по своей сути являются кирпичами, выполненными из бетона. К тому же, внутри таких блоков устанавливают арматурный каркас. Если в процессе возведения жилой постройки вам понадобились нестандартные размеры, то существует возможность заказа требуемой партии напрямую, через завод. Стоит отметить, что монтаж фундамента из блоков ФБС осуществляется с использованием принципов кирпичной кладки. Важнейшим здесь считается начальный, первый ряд. В связи с этим, требуется внимательно укладывать его. Впрочем, к каждому ряду следует относиться внимательно.

Сцепление рассматриваемых блоков между собой осуществляется с помощью цементного раствора. С этой целью также может использоваться и специализированный клей. Но чаще всего применяется цементная смесь, поскольку её достаточно просто замешать уже на самом строительном участке, да и способ этот значительно дешевле. Кладка с использованием специального клеевого состава отличается более дорогой стоимостью. В то же время, нет необходимости в поиске компонентов, состав следует всего-то развести водой и готово.

Сильные и слабые стороны выполнения фундамента из ФБС-блоков

Сначала рассмотрим сильные стороны, которыми может похвастаться строительство фундамента из блоков ФБС. Итак, сюда можно отнести:

  1. Оперативность. Установка подобного основания из рассматриваемых элементов даёт возможность значительно ускорить процесс возведения постройки. Достигается это благодаря использованию кусочков единой цельной монолитной плиты. Таким образом, вовсе не сложно будет возвести сооружение требуемой конфигурации.
  2. Надёжная прочность. Составляющие изготавливаются заводскими производственными мощностями. Таким образом, все пропорции при выпуске такой продукции рассчитываются с абсолютной точностью.
  3. Универсальность в применении. Из данных блоков может быть возведён фундамент любой формы, любого назначения. 
  4. Удобство в укладке. Изготовители предусмотрели наличие специальных петель, которые пригодятся в том случае, когда имеет место механизированная кладка. Благодаря этому преимуществу значительно облегчается монтаж фундамента из блоков ФБС. Также в укладке помогает и то, что все элементы обладают одними и теми же размерностями. За счёт этого качества становится возможным их практически идеальный подгон друг к другу. Прекрасная плотность стыковки достигается за счёт использования специальных пазов.
  5. Прекрасная стойкость к резким температурным перепадам. Обуславливается это преимущество использованию специализированных веществ при изготовлении блоков. Благодаря этой сильной стороне готовые блоки ФБС могут использоваться даже в условиях крайнего севера.

Как и другие разновидности оснований, фундаменты из блоков ФБС обладают и своими слабыми сторонами. Ниже приведём недостатки, которыми обладает рассматриваемый материал:

  • Высокая стоимость изготовления. Из-за этого цена на сборный фундамент из блоков ФБС может превышать на сорок процентов стоимость монолита;
  • Необходимость в обустройстве гидроизоляционных слоёв. Фундаментное основание, выполненное из блоков ФБС, характеризуется негативной реакцией на излишки грунтовых вод. В связи с этим возникает необходимость в обеспечении лучшей гидрозащиты. С этой целью обычно обустраивают двойной гидроизоляционный слой. 
  • Необходимость в дополнительном утеплении. Ещё одна слабая сторона данных блоков заключается в том, что швы сборного основания должны быть обязательно утеплены. Объясняется это тем, что порой суровая зима негативно отражается на связующей составляющей, что может привести к отрицательному отражению на самом фундаментном основании.

Справедливости ради отметим, что второй и третий недостаток вполне исправимы. Так, к примеру, для защиты швов и уязвимых участков кладки используется такой материал, как пенополистирол. Благодаря его применению становится возможным заметное продление срока эксплуатации всей возводимой конструкции.

Возведение основания из ФБС-блоков

В данном разделе постараемся ответить на вопрос о том, как сделать фундамент из блоков ФБС. До начала основных работ выполняется подготовка строительной площадки. Необходимым является наличие специального места, предназначенного для дальнейшего хранения строительных материалов и инструментов. С целью осуществления строительства блочного основания необходимо запастись специализированными гидроизолирующими составами и песком. Понадобится также цементная смесь и, конечно же, сами блоки.

Подготовительный этап

Начало строительных работ начинается с проектирования дома и разметки стройплощадки. Участок должен быть размечен согласно плану. После того как площадка будет размечена, необходимо тщательно её очистить, сюда относятся действия, связанные с удалением травы, других растений, а также различного мусора.

Установка блочного фундаментного основания может выполняться различными способами, выбор которых зависит от типа грунта, находящимся в той местности, в пределах которой осуществляется строительство. Почва может быть илистой или песчаной. Рассмотрим каждую из разновидностей.

Если имеет место глинистая почва, то для начала здесь должны быть выкопаны траншеи. В связи с тем, что подобная почва нуждается в дополнительном уровне защиты, то крайне рекомендуется обустройство подушки на дне траншеи. Это песчано-щебневая подушка, состоящая из нескольких слоёв.

Сначала засыпается песчаный слой, обладающий примерной толщиной в пятнадцать сантиметров. Что касается второго слоя, то он стоит из щебёнки. Его слой должен быть немногим более тридцати сантиметров. Верхний, завершающий эту подушку слой – это пятнадцатисантиметровая песчаная прослойка. Каждый из слоёв должен быть тщательно утрамбован. После всего этого применяется основа ФБ, увеличивающая опорную площадь для будущей конструкции. Когда укладка нулевого ряда будет завершена, следует начало укладки ФБС-блоков.

Рассмотрим также ситуацию с песчаной почвой. Для осуществления строительных работ на таком грунте также необходимо обзавестись траншеей. Но вот необходимость в обустройстве подушки здесь отсутствует. Объясняется это тем, что песчаный грунт является наилучшим для того чтобы была осуществлена установка фундамента из блоков ФБС. После выравнивания рабочей поверхности можно переходить к этапу установки опалубочной конструкции. В неё и будет залит бетонный раствор, высота которого должна будет составить десять сантиметров. Затем, когда бетон затвердеет, можно переходить к установке ФБС-блоков.

Самостоятельная установка такого фундамента

Для осуществления установки блоков ФБС необходимо чтобы был приготовлен цементный раствор. С целью продления срока службы, а также для лучшей пластичности в раствор можно добавлять специализированные вещества. Фундаментное основание начинают возводить с углов. Также можно начинать с тех участок, в которых будут пересекаться стены.

Установка ФБС-блоков имеет много общего с кирпичной кладкой. Необходимо помнить о том, что на углах сооружения особо важно выполнять грамотную перевязку. С целью обеспечения дополнительной защиты от воздействий влаги следует укладывать гидроизоляционные слои. Для того чтобы выровнять направления используются специализированные маяки. В процессе возведения подобного фундамента следует помнить о недопустимости возникновения, каких бы то ни было, пустот промеж блоками. В противном случае фундаментное основание может быть значительно ослаблено.

Завершающие действия

В тех случаях, когда установка основания осуществлялась на песчаной почве, необходимо обустроить дополнительный монолитный фундаментный слой. На верхние блоки следует установить опалубку, которая по своей высоте обычно равна нижней опалубочной конструкции. Её также заливают бетонным раствором. Подобным образом обустраивается ленточный фундамент из блоков ФБС. Соблюдение всех технологических особенностей – это уже 50% гарантии успешного проведения всех строительных работ, связанных с возведением фундаментного основания. К этому процессу необходимо относиться со всей серьёзностью, поскольку от качества фундамента зависит долговечность всей постройки.

размеры, монтаж ленточных и свайных оснований, цена

Одним из самых быстрых способов возведения фундамента является монтаж сборных конструкций из специальных  блоков. Если принято решение идти по данному пути, следует обращать внимание на качество элементов.

Гарантию того что конструкция выдержит установленную нагрузку, может дать только изготовление в соответствии с определенными стандартами. ГОСТ на фундаментные блоки достаточно жестко определяет основные требования к продукции, поэтому предпочтение стоит отдавать именно сертифицированным производителям.

Виды фундаментных блоков

Чаще всего на практике применяются фундаментные блоки типов ФБС и ФЛ:

  • Требования к производству блоков ФЛ определены в ГОСТ 13580 85 на ленточный фундамент. Они используются для монтажа оснований под ленточные фундаменты, отличаются трапециевидным сечением, что позволяет получить большую площадь опоры конструкции на грунт.
  • Блоки ФБС используются для монтажа основной конструкции фундамента. Они позволяют ускорить строительство, но для монтажа потребуется применение подъемной техники.

Все фундаментные блоки изготавливаются из тяжелых бетонов, при этом предусмотрено обязательное армирование конструкции. Соблюдение всех технологических нюансов технологии возможно только в заводских условиях.

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

Блоки ФЛ

Данные блоки еще называют фундаментными подушками, а все основные конструктивные требования (в части габаритов, устойчивости к нагрузке) определяет ГОСТ на размеры на ленточный фундамент, ведь во многом от габаритов и зависит работоспособность всей конструкции.

Блок имеет расширенное основание, существующий ГОСТ предполагает выпуск элементов со следующими типовыми размерами:

  • Длина — 780; 1180 и 2380 мм, благодаря этому существует возможность монтажа, не прибегая к подгонке по этому размеру.
  • Ширина — данный ряд более обширен, в него входит 10 значений от 600 до 3200 мм. На выбор плиты по данному параметру оказывают влияние конструктивные особенности фундамента и предполагаемая нагрузка.
  • Высота — 300 и 500 мм, эти размеры считаются основными типовыми.

Фундаментные подушки или плиты используются при строительстве загородных домов, коттеджей, других типов помещений. Они незаменимы при устройстве цокольных помещений и подвалов.

Блоки ФБС

Существует несколько модификаций фундаментных блоков.

Сплошные обладают большей несущей способностью, элементы с вырезом на торце позволяют получить более надежное соединение (путем заливки раствором), пустотелые используют в местах, где необходима прокладка различных коммуникаций.

Все блоки данного класса изготовлены из тяжелых марок бетона, они должны отвечать требованиям ГОСТ на основания и фундаменты.

Существует целый ряд типоразмеров, позволяющих возвести конструкцию с различной несущей способностью:

  • По высоте отличают два основных стандарта — 280 и 580 мм.
  • По ширине блоки делят на следующие виды — от 300 до 600 мм (с шагом 100 мм).
  • По длине так же разделяются на целые и доборные элементы (880; 1180 и 2380 мм).

Несмотря на это при монтаже достаточно часто приходится ломать блоки на более мелкие элементы (по длине), для этого применяют различные способы и технологии.

Монтаж фундаментных блоков

Фундаменты из железобетонных блоков применяются для монтажа различных типов оснований, практически единственным исключением являются свайные конструкции. Дело в том, что ГОСТ на свайные фундаменты был рассчитан исходя из несколько другого принципа работы, немалую роль в которой играют силы трения опорного элемента и грунта. А фундаментные блоки в основном передают нагрузку на устойчивые слои почвы или на подготовленную подушку.

Монтируя сборный фундамент, стоит придерживаться следующих правил:

  • Грунт в котловане или траншее должен быть тщательно уплотнен, для этой цели лучше всего использовать вибротрамбовки.
  • Устраивается щебневая или песчаная подушка (в зависимости от свойств грунта и проектных решений).
  • Первый ряд блоков укладывается без применения цементно-песчаного раствора. Первые блоки кладут по углам, при этом должна четко соблюдаться разметка. Положение элементов контролируется при помощи отвеса, которым проверяется совпадение сигнальных шнуров и граней блока.
  • При необходимости разбить блок используют помощь подъемного крана, существует несколько способов выполнения этой операции.
  • Стыки, вырезы блоков, заполняются бетонной или цементно песчаной смесью (раствором), при необходимости оставшиеся проемы закладываются кирпичом или другим материалом.
  • Последующие ряды блоков устанавливаются на слой раствора (толщиной около 5 мм), при этом в нем не должно быть камней и других посторонних включений.
  • При монтаже необходимо постоянно проверять вертикальность и прямолинейность стены, передвигать блоки по поверхности можно при помощи лома в течение первоначального времени (пока раствор не схватился).

Сборный фундамент из железобетонных блоков применяется на различных типах грунта, главное правильно разработать проект, и выбрать конструктивные элементы, соответствующие государственным стандартам.

Блоки ФБС. Размеры и способы монтажа на стройке

Блоки ФБС (Фундаментные стеновые блоки) от компании «Строитель-М» это изделия из тяжелого бетона класса В15. ФБС предназначены для возведения сборных фундаментов, стен подвалов, цоколей домов.

Фундаментный блок используют при необходимости быстрого монтажа подземных конструкций без установки опалубки. По сравнению с монолитным, возведение сборного основания можно вести даже зимой, не заботясь о прогреве бетона и сделать его за несколько дней. Сфера применения включает как частное малоэтажное строительство, так и высотные дома. Высокая прочность достигаются применением тяжелого бетона.

Размеры ФБС по ГОСТ 13579-78.

ФБС в поперечном сечении прямоугольные, имеют петли для облегчения транспортировки и монтажа. Они рассчитаны только на передачу веса сооружения на грунт, поэтому согласно ГОСТа не армируются. Металл присутствует только в качестве закладных элементов. По торцам блоков есть специальные 30мм углубления для дополнительного сцепления элементов цементным раствором и расположения монтажных петель.

«Строитель-М» выпускает бетонные блоки длиной 2380 мм при высоте 580мм. Варьируется только ширина: 300, 400, 500, 600 мм. Отклонения от гостовских размеров не превышают ±13 мм по длине и ±5 по высоте и ширине. Точные геометрические размеры позволяют избежать погрешностей при строительстве. Внушительные размеры и вес элементов подразумевают их монтаж только подъемной техникой, при наличии удобного подъезда к объекту.

Особенности монтажа

Перед поднятием первого блока, убедитесь в том, что опоры крана находятся находятся на достаточном расстоянии от края котлована или траншеи во избежание сползания или осыпания грунта. Если проектные размеры стены не кратны длине ФБС, пустые промежутки можно заполнять бетонной смесью или планировать прохождение в них водоводов и прочих сетей.

Подготовка основания

На первом этапе разбивают оси на дне готового котлована, заглубленного ниже глубины промерзания (для района Урала это не менее 1,8м).  По осям основания натягиваются нити на колышках с соблюдением прямых углов. Прямой угол выдерживается специальным лазерным разметчиком. Далее от осевой нити на расстояние половины ширины блока с припуском до 5см натягивают шнуры, обозначающие внешние грани блочного фундамента.

Укладку ведут на выровненный и уплотненный грунт или предварительно подготовленное песчаное основание (толщиной не менее 10 см), очищенные от снега или воды на дне котлована или траншеи.

Если грунт песчаный, монтировать можно прямо на выровненную поверхность. Поперечная ширина песчаного основания должна быть больше опорной части блоков на 20-30 см.

Необходимые инструменты и материалы:
  • Комплект блоков с подготовленными для сетей отверстиями;
  • строительный кран;
  • бетономешалка.
  • песок крупной фракции;
  • цементобетонная смесь;
  • плоская арматурная сетка;
  • гидроизоляционные материалы;
  • лопата;
  • лазерный уровень и отвес;
  • бечевка и колышки для разметки;
Установка блоков

Начинают установку с угловых участков, не забывая связывать наружные стены с внутренними перегородками. В процессе тщательно проверяют горизонтальные и вертикальные уровни. Все швы плотно заполняются цем.раствором. ФБС размещают со смещением швов вразбежку (перевязкой) на расстояние не менее 25-60 см подобно кирпичной кладке с чередованием рядов.

Перемещение блоков проводится подъемным краном в присутствии профессионального такелажника. Поверхности изделий заранее очищают от грязи и слегка смачивают для лучшего сцепления с цементным раствором. Минимальная толщина цементной стяжки составляет 15 мм. Вертикальные швы заполняются с двух торцов раствором и уплотняются.

Отверстия под инженерные коммуникации намечают и пробивают в блоках заранее на этапе монтажа. Так же их можно предусмотреть простым горизонтальным смещением фбс-блока. Входы и стыки для сетей обрабатывают гидрофобными составами.

Внешняя гидроизоляция

По верхнему ряду основания выполняется гидроизоляция. А при наличии повышенной влажности грунтов – дополнительно проводят мероприятия по гидрофобизации наружных поверхностей. Стандартно это обмазка гудроном или специальными составами.

Цена фундамента

В финансовом плане монтаж фундамента из ФБС — наиболее экономичен. Подсчитать расходы на стройматериалы несложно. И, хотя 1 куб. блоков-ФБС стоит несколько дороже куба бетона, вы сэкономите на опалубке и арматуре. Земляные работы в любом случае одинаковы. Узнать цены и Заказать ФБС можно ЗДЕСЬ

Фундамент дома из ФБС. Если строите дом, то бетонные блоки ФБС — идеальный вариант фундамента дома.


Бетонный блок ФБС, пожалуй, самый распространенный вариант для строительства фундамента дома. И чаще всего используется сплошной бетонный фундаментный блок, обозначаемый аббревиатурой ФБС. Их используют для монтажа фундаментов домов под наружные и внутренние несущие стены.

Кроме того, бетонные блоки используют для сооружения подпорных стенок, пандусов, заборов, платформ и эстакад.

В производстве фундаментных блоков сплошных (ФБС) предприятие «Строитель-МП» применяет Технические условия производства, типовые размеры и прочностные характеристики, регламентируемые Государственным стандартом № 13579 от 1978 года.

Преимущества бетонных блоков для фундамента

  • Значительное снижение сроков строительных работ, чем при заливке монолитного фундамента дома. Мы, кстати оказываем услугу по заливке монолита собственным бетононасосом 21 куб.м.;
  • Стандартные размеры блоков позволяют быстро и точно рассчитать нужное количество ФБС;
  • Нет необходимости в дорогостоящей опалубке, добавках против замерзания бетона;
  • Долговечность сборного фундамента более 100 лет (при правильном монтаже и соблюдении условий эксплуатации).

Упаковка приложений PyQt5 с помощью fbs — Практическое руководство по программированию графического интерфейса пользователя Python с помощью Qt

fbs — это кроссплатформенная система упаковки PyQt5, которая поддерживает создание настольных приложений для Windows, Mac и Linux (Ubuntu, Fedora и Arch). Построенный на основе PyInstaller , он скрывает некоторые неровности и определяет стандартную структуру проекта, которая позволяет полностью автоматизировать процесс сборки. Включенный API ресурсов особенно полезен, упрощая работу с внешними файлами данных, изображениями или сторонними библиотеками — распространенной проблемой при объединении приложений.

Это руководство проведет вас через шаги создания приложений PyQt5 с использованием fbs с нуля и для преобразования существующих проектов в систему. Если ваше приложение ориентировано на несколько платформ, на него определенно стоит обратить внимание.

Если вы нетерпеливы, вы можете скачать установщики Moonsweeper непосредственно для Windows, MacOS или Linux (Ubuntu).

fbs под лицензией GPL. Это означает, что вы можете использовать систему fbs бесплатно в пакетах, распространяемых с GPL.Для коммерческих (или других не-GPL) пакетов вы должны купить коммерческую лицензию. Актуальную информацию см. На странице лицензирования fbs.

fbs построен на основе PyInstaller. Вы также можете использовать PyInstaller непосредственно для упаковки приложений, см. Нашу упаковку приложений PyQt5 и PySide2 для Windows с помощью учебника PyInstaller.

Требования для установки

fbs работает из коробки как с PyQt PyQt5 , так и с Qt для Python PySide2 .Единственное другое требование — это PyInstaller , который сам обрабатывает упаковку. Вы можете установить их в виртуальной среде (или в виртуальной среде ваших приложений), чтобы поддерживать чистоту вашей среды.

fbs поддерживает только Python версий 3.5 и 3.6

трепать
  python3 -m venv fbsenv
  

После создания активируйте виртуальную среду, запустив ее из командной строки —

трепать
  # В Mac / Linux:
источник fbsenv / bin / активировать

# В Windows:
вызовите fbsenv \ scripts \ activate.летучая мышь
  

Наконец, установите необходимые библиотеки. Для PyQt5 вы должны использовать —

питон
  pip3 установить fbs PyQt5 PyInstaller == 3.4
  

Или для Qt для Python (PySide2) —

питон
  pip3 установить fbs PySide2 PyInstaller == 3.4
  

fbs устанавливает инструмент командной строки fbs на ваш путь, который обеспечивает доступ ко всем командам управления fbs .Чтобы увидеть полный список доступных команд, запустите fbs .

трепать
  martin @ Martins-Laptop testapp $ fbs
использование: fbs [-h]
           {startproject, run, freeze, installer, sign_installer, repo,
           загрузка, выпуск, проверка, очистка, buildvm, runvm, gengpgkey, регистрация, вход, init_licensing}
           ...

fbs

позиционные аргументы:
  {startproject, run, freeze, installer, sign_installer, repo,
  загрузка, выпуск, проверка, очистка, buildvm, runvm, gengpgkey, регистрация, вход, init_licensing}
    startproject Запустить новый проект в текущем каталоге
    запустить Запустить приложение из источника
    freeze Скомпилируйте свой код в автономный исполняемый файл
    установщик Создайте установщик для вашего приложения
    sign_installer Подписать установщик, чтобы операционная система пользователя доверяла ему
    репо Создавать файлы для автоматических обновлений
    загрузить Загрузите установщик и репозиторий в fbs.ш
    выпустить версию Bump и запустить очистить, заморозить, ..., загрузить
    test Выполнять автоматизированные тесты
    clean Удалить предыдущие выходы сборки
    buildvm Создайте виртуальную машину Linux. Например: buildvm ubuntu
    runvm Запустите виртуальную машину Linux. Например: runvm ubuntu
    gengpgkey Сгенерировать ключ GPG для подписи кода Linux
    зарегистрироваться Создайте учетную запись для загрузки файлов
    войти Сохраните данные своей учетной записи в secret.json
    init_licensing Генерация публичных / приватных ключей для лицензирования

необязательные аргументы:
  -h, --help показать это справочное сообщение и выйти
  

Теперь вы готовы начать упаковывать приложения с fbs .

Запуск приложения

Если вы запускаете приложение PyQt5 с нуля, вы можете использовать команду управления fbs startproject для создания полной, работающей и упаковываемой заглушки приложения в текущей папке. Это дает вам возможность тестировать (и продолжать тестирование) пакетируемость вашего приложения по мере его разработки, а не оставлять это до конца.

Команда предложит вам ответить на несколько вопросов, позволяя указать детали вашего приложения.Эти значения будут записаны в исходный код и конфигурацию вашего приложения. Простое приложение будет создано в папке src / в текущем каталоге.

трепать
  martin @ Martins-Laptop ~ $ fbs startproject
Название приложения [MyApp]: HelloWorld
Автор [Мартин]: Мартин Фицпатрик
Идентификатор пакета Mac (например, com.martin.helloworld, необязательно):
  

Если у вас уже есть собственное работающее приложение PyQt5, вам необходимо: а) использовать сгенерированное приложение в качестве ориентира для преобразования вашего в ту же структуру, или б) создать новое приложение с помощью startproject и перенести код.

Запуск вашего нового проекта

Вы можете запустить это новое приложение с помощью следующей команды fbs в той же папке, из которой вы запустили startproject .

Если все работает, это должно показать вам небольшое пустое окошко с заголовком вашего приложения — интересно, а?

Приложение Hello World в Windows

Приложение Hello World на Mac

Приложение Hello World в Linux

Структура приложения

Команда startproject генерирует необходимую структуру папок для приложения fbs PyQt5.Это включает src / build , который содержит настройки сборки для вашего пакета, main / icons, , который содержит значки приложений, и src / python для источника.

трепать
 .
└── src
    ├── строить
    │ └── настройки
    │ ├── base.json
    │ ├── linux.json
    │ └── mac.json
    └── главная
        ├── иконки
        │ ├── Icon.ico
        │ ├── README.md
        │ ├── база
        │ │ ├── 16.PNG
        │ │ ├── 24.png
        │ │ ├── 32.png
        │ │ ├── 48.png
        │ │ └── 64.png
        │ ├── linux
        │ │ ├── 1024.png
        │ │ ├── 128.png
        │ │ ├── 256.png
        │ │ └── 512.png
        │ └── mac
        │ ├── 1024.png
        │ ├── 128.png
        │ ├── 256.png
        │ └── 512.png
        └── питон
            └── main.py

  

Ваше простое приложение PyQt5 сгенерировано в src / main / python / main.py и представляет собой полный рабочий пример, на котором вы можете создать свой собственный код.

питон
  из fbs_runtime.application_context.PyQt5 импортировать ApplicationContext
из PyQt5.QtWidgets импортировать QMainWindow

import sys

класс AppContext (ApplicationContext): # 1. Подкласс ApplicationContext
    def run (self): # 2. Реализуйте run ()
        окно = QMainWindow ()
        version = self.build_settings ['версия']
        окно.setWindowTitle ("HelloWorld v" + версия)
        window.resize (250, 150)
        window.show ()
        return self.app.exec_ () # 3. Завершите run () этой строкой

если __name__ == '__main__':
    appctxt = AppContext () # 4. Создайте экземпляр подкласса
    exit_code = appctxt.run () # 5. Вызов run ()
    sys.exit (код_выхода)
  

Если вы создавали приложения PyQt5 до того, как заметите, что создание приложения с fbs представляет новую концепцию — ApplicationContext .

Контекст приложения

При создании приложений PyQt5 обычно используется ряд компонентов или ресурсов, которые используются во всем приложении. Они обычно хранятся в QMainWindow или как глобальные переменные, которые могут стать немного беспорядочными по мере роста вашего приложения. ApplicationContext обеспечивает центральное место для инициализации и хранения этих компонентов, а также предоставляет доступ к некоторым основным функциям fbs .

Объект ApplicationContext также создает и содержит ссылку на глобальный объект QApplication , доступный в контексте ApplicationContext.приложение . Каждое приложение Qt должно иметь одно (и только одно) QApplication для хранения цикла событий и основных настроек. Без fbs вы обычно определяете это в основе вашего скрипта и вызываете .exec () , чтобы запустить цикл обработки событий.

Без fbs это выглядело бы примерно так —

питон
  если __name__ == '__main__':
    app = QApplication ()
    w = MyCustomWindow ()
    app.exec_ ()
  

Эквивалент с fbs будет —

питон
  если __name__ == '__main__':
    ctx = ApplicationContext ()
    w = MyCustomWindow ()
    ctx.app.exec_ ()
  

Если вы хотите создать свою собственную инициализацию `QApplication`, вы можете перезаписать свойство` .app` в своем подклассе `ApplicationContext`, используя` cached_property` (см. Ниже).

Этот базовый пример очевиден для подражания. Однако, как только вы начнете добавлять пользовательские стили и переводы в свое приложение, инициализация может немного увеличиться. Чтобы все было хорошо структурировано, fbs рекомендует создать метод .run в вашем ApplicationContext .

Этот метод должен обрабатывать настройку вашего приложения, такую ​​как создание и отображение окна, наконец, запуск цикла обработки событий на объекте .app . Этот последний шаг выполняется путем вызова self.app.exec_ () в конце метода.

питон
  класс AppContext (ApplicationContext):
    def run (self):
        ...
        вернуть self.app.exec_ ()
  

По мере усложнения инициализации вы можете для ясности разбить подразделы на отдельные методы, например —

питон
  класс AppContext (ApplicationContext):
    def run (self):
        себя.setup_fonts ()
        self.setup_styles ()
        self.setup_translations ()
        вернуть self.app.exec_ ()

    def setup_fonts (самостоятельно):
        # ...сделай что-нибудь ...

    def setup_styles (самостоятельно):
        # ...сделай что-нибудь ...

    def setup_translations (самостоятельно):
        # ...сделай что-нибудь ...

  

При выполнении будет вызван метод `.run ()` и запустится ваш цикл обработки событий. Выполнение продолжается в этом цикле событий до тех пор, пока приложение не будет закрыто, после чего ваш файл `.run () `метод вернет (с соответствующим кодом выхода).

Создание реального приложения

Простое приложение не так много, поэтому ниже мы рассмотрим нечто более полное — приложение Moonsweeper из моих 15-минутных приложений. Обновленный исходный код доступен для загрузки ниже.

Источник Moonsweeper (fbs) PyQt5

Источник Лунохода (fbs) PySide2

Здесь описаны только изменения, необходимые для преобразования Moonsweeper в fbs .Если вы хотите увидеть, как работает сам Moonsweeper, см. Оригинальную статью о приложении. Пользовательские значки приложений были созданы с использованием иконок Freepik.

Проект имеет ту же базовую структуру, что и приложение-заглушка, которое мы создали выше.

питон
 .
├── README.md
├── requirements.txt
├── screenshot-minesweeper1.jpg
├── screenshot-minesweeper2.jpg
└── src
    ├── строить
    │ └── настройки
    │ ├── base.json
    │ ├── linux.json
    │ └── mac.json
    └── главная
        ├── Installer.nsi
        ├── иконки
        │ ├── Icon.ico
        │ ├── README.md
        │ ├── база
        │ │ ├── 16.png
        │ │ ├── 24.png
        │ │ ├── 32.png
        │ │ ├── 48.png
        │ │ └── 64.png
        │ ├── linux
        │ │ ├── 1024.png
        │ │ ├── 128.png
        │ │ ├── 256.png
        │ │ └── 512.png
        │ └── mac
        │ ├── 1024.png
        │ ├── 128.PNG
        │ ├── 256.png
        │ └── 512.png
        ├── питон
        │ ├── __init__.py
        │ └── main.py
        └── ресурсы
            ├── база
            │ └── изображения
            │ ├── bomb.png
            │ ├── bug.png
            │ ├── clock-select.png
            │ ├── cross.png
            │ ├── flag.png
            │ ├── plus.png
            │ ├── rocket.png
            │ ├── смайлик-lol.png
            │ └── смайлик.PNG
            └── mac
                └── Содержание
                    └── Info.plist
  

src / build / settings / base.json хранит основные сведения о приложении, включая точку входа для запуска приложения с fbs run или после упаковки.

json
  {
    "app_name": "Лунный тральщик",
    "author": "Мартин Фицпатрик",
    "main_module": "src / main / python / main.py",
    "версия": "0.0.0"
}
  

Точка входа сценария находится в основе src / main / python / main.py . Это создает объект AppContext и вызывает метод .run () для запуска приложения.

питон
  если __name__ == '__main__':
    appctxt = AppContext ()
    exit_code = appctxt.run ()
    sys.exit (код_выхода)
  

Контекст приложения определяет метод .run () для обработки инициализации. В данном случае это состоит из создания и отображения главного окна, а затем запуска цикла обработки событий.

питон
  из fbs_runtime.application_context.PyQt5 импортировать ApplicationContext, \
    cached_property


класс AppContext (ApplicationContext):
    def run (self):
        self.main_window.show ()
        вернуть self.app.exec_ ()

    @cached_property
    def main_window (сам):
        return MainWindow (self) # Передать контекст окну.

    # ... отрезать ...
  

cached_property декоратор

Модель .Метод run () обращается к self.main_window . Вы заметите, что этот метод заключен в декоратор fbs @cached_property . Этот декоратор превращает метод в свойство (например, декоратор Python @property ) и кэширует возвращаемое значение.

При первом обращении к свойству выполняется метод и кэшируется возвращаемое значение. При последующих вызовах кэшированное значение возвращается напрямую, ничего не выполняя. Это также имеет побочный эффект, заключающийся в том, что создание этих объектов откладывается до тех пор, пока они не понадобятся.

Вы можете использовать @cached_property для определения каждого компонента приложения (окна, панели инструментов, соединения с базой данных или других ресурсов). Однако у вас нет , у вас нет для использования @cached_property — в качестве альтернативы вы можете объявить все свойства в своем блоке ApplicationContext .__ init__ , как показано ниже.

питон
  из fbs_runtime.application_context.PyQt5 импортировать ApplicationContext

класс AppContext (ApplicationContext):

    def __init __ (self, * args, ** kwargs):
        супер (AppContext, сам).__init __ (* аргументы, ** kwargs)

        self.window = Окно ()

    def run (self):
        self.window.show ()
        вернуть self.app.exec_ ()

  

Доступ к ресурсам с помощью

.get_resource

Приложениям обычно требуются дополнительные файлы данных помимо исходного кода — например, значки файлов, изображения, стили (файлы Qt .qss ) или документация. Вы также можете связать библиотеки или двоичные файлы для конкретной платформы. Для упрощения этого fbs определяет структуру папок и метод доступа, которые без проблем работают как в разрабатываемых, так и в распространяемых версиях.

Папка верхнего уровня resources / должна содержать папку base плюс любую комбинацию других папок, показанных ниже. Папка base содержит файлы, общие для всех платформ, в то время как папки для конкретных платформ могут использоваться для любых файлов, специфичных для данной ОС.

трепать
  base / # для файлов, необходимых для всех ОС
windows / # для файлов, требуемых только в Windows
mac / # "" "" "Mac
linux / # "" "" "Linux
arch / # "" "" "Arch Linux
fedora / # "" "" "Debian Linux
ubuntu / # "" "" "Ubuntu Linux
  

Размещение файлов в нужном месте для загрузки из распределенного приложения на всех платформах обычно является одним из самых сложных моментов при распространении приложений PyQt.Очень удобно, что fbs сделает это за вас.

Для упрощения загрузки ресурсов из папки resources / в ваши приложения fbs предоставляет метод ApplicationContext.get_resource () . Этот метод принимает имя файла, который можно найти где-нибудь в папке resources / , и возвращает абсолютный путь к этому файлу. Вы можете использовать этот возвращенный абсолютный путь, чтобы открыть файл как обычно.

питон
  из fbs_runtime.application_context.PyQt5 импорт ApplicationContext, cached_property


класс AppContext (ApplicationContext):

    # ... отрезать ...

    @cached_property
    def img_bomb (сам):
        вернуть QImage (self.get_resource ('images / bug.png'))

    @cached_property
    def img_flag (сам):
        вернуть QImage (self.get_resource ('images / flag.png'))

    @cached_property
    def img_start (сам):
        вернуть QImage (self.get_resource ('images / rocket.png'))

    @cached_property
    def img_clock (сам):
        вернуть QImage (self.get_resource ('images / clock-select.png'))

    @cached_property
    def status_icons (self):
        возвращаться {
            STATUS_READY: QIcon (self.get_resource ("images / plus.png")),
            STATUS_PLAYING: QIcon (self.get_resource ("images / smiley.png")),
            STATUS_FAILED: QIcon (self.get_resource ("images / cross.png")),
            STATUS_SUCCESS: QIcon (self.get_resource ("images / smiley-lol.png"))
        }

    # ... отрезать ...
  

В нашем приложении Moonsweeper выше у нас есть файл изображения bomb , доступный по адресу src / main / resources / base / images / bug.jpg . Вызывая ctx.get_resource ('images / bug.png') , мы получаем абсолютный путь к этому файлу изображения в файловой системе, что позволяет нам открыть файл в нашем приложении.

Если файл не существует, вместо него будет вызвана `FileNotFoundError`.

Удобство этого метода заключается в том, что он прозрачно обрабатывает папки платформы в src / main / resources , давая приоритет файлам, зависящим от ОС. Например, если тот же файл также присутствует в src / main / resources / mac / images / bug.jpg , и мы назвали ctx.get_resource ('images / bug.jpg') и получили версию файла для Mac.

Дополнительно get_resource работает как при запуске из исходного кода, так и при запуске замороженной или установленной версии вашего приложения. Если ваши ресурсы / загружаются правильно локально, вы можете быть уверены, что они будут правильно загружаться в ваших распределенных приложениях.

Использование

ApplicationContext из приложения

Как показано выше, наш объект ApplicationContext имеет кэшированные свойства для загрузки и возврата ресурсов.Чтобы позволить нам получить к ним доступ из нашего QMainWindow , мы можем передать контекст и сохранить ссылку на него в нашем окне __init__ .

питон
  класс MainWindow (QMainWindow):
    def __init __ (self, ctx):
        super (MainWindow, self) .__ init __ ()

        self.ctx = ctx # Сохранение ссылки на контекст для ресурсов и т. д.

# ... отрезать ...
  

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

питон
  l = QLabel ()
        l.setPixmap (QPixmap.fromImage (self.ctx.img_bomb))
        l.setAlignment (Qt.AlignRight | Qt.AlignVCenter)
        hb.addWidget (l)

# ... отрезать ...

        l = QLabel ()
        l.setPixmap (QPixmap.fromImage (self.ctx.img_clock))
        l.setAlignment (Qt.AlignLeft | Qt.AlignVCenter)
        hb.addWidget (l)

  

Первый раз мы обращаемся к self.ctx.img_bomb файл будет загружен, QImage создан и возвращен. При последующих вызовах мы будем получать изображение из кеша.

питон
  def init_map (самостоятельно):
        # Добавить позиции на карту
        для x в диапазоне (0, self.b_size):
            для y в диапазоне (0, self.b_size):
                w = Pos (x, y, self.ctx.img_flag, self.ctx.img_start, self.ctx.img_bomb)
                self.grid.addWidget (ш, у, х)
                # Подключить сигнал для обработки расширения.w.clicked.connect (self.trigger_start)
                w.expandable.connect (self.expand_reveal)
                w.ohno.connect (self.game_over)

# ... отрезать ...

        self.button.setIcon (self.ctx.status_icons [STATUS_PLAYING])

# ... отрезать ...

    def update_status (сам, статус):
        self.status = статус
        self.button.setIcon (self.ctx.status_icons [self.status])

  

Это все изменения, необходимые для того, чтобы приложение Moonsweeper могло быть упаковано с fbs .Если вы откроете исходную папку, вы сможете запустить ее, как раньше.

Если это сработает, вы готовы перейти к замораживанию и встраиванию установщика.

Зависание приложения

Замораживание — это процесс превращения приложения Python в автономный исполняемый файл, который может работать на компьютере другого пользователя. Используйте следующую команду, чтобы превратить исходный код приложения в автономный исполняемый файл:

Результирующий исполняемый файл зависит от платформы, на которой вы заморозили — исполняемый файл будет работать только на той ОС, на которой вы его создали (например.грамм. исполняемый файл, созданный в Windows, будет работать на другом компьютере с Windows, но не на Mac).

  • Windows создаст исполняемый файл .exe в папке target /
  • MacOS X создаст пакет приложений .app в target / .app
  • Linux создаст исполняемый файл в папке target /

В Windows вам может потребоваться установить Windows 10 SDK, хотя fbs предложит вам, если это так.

Создание установщика

Хотя вы можете делиться исполняемыми файлами с пользователями, настольные приложения обычно распространяются с установщиками , которые обрабатывают процесс помещения исполняемого файла (и любых других файлов) в нужное место. См. Следующие разделы для получения информации о конкретных платформах перед созданием

.

Вы должны заморозить ваше приложение сначала затем создать установщик.

Установщик Windows

Установщик Windows позволяет пользователям выбирать каталог для установки исполняемого файла и добавляет ваше приложение в меню «Пуск» пользователя.Приложение также добавляется к установленным программам, что позволяет пользователям удалять его.

Перед созданием установщиков в Windows вам необходимо установить NSIS и убедиться, что его установочный каталог находится в вашем PATH . Затем вы можете создать установщик, используя —

Установщик Windows будет создан по адресу target / Setup.exe .

Установщик Windows для Moonsweeper

Программа установки Windows NSIS для Moonsweeper

Программа установки для Mac

Нет дополнительных шагов для создания установщика MacOS.Просто запустите команду fbs

На Mac команда сгенерирует образ диска с адресом target / .dmg . Этот образ диска будет содержать комплект приложений и ярлык для папки «Приложения». Когда ваши пользователи открывают его, они могут перетащить приложение в папку «Приложения», чтобы установить его.

Загрузите комплект Moonsweeper .dmg здесь

Программа установки macOS для Moonsweeper

Образ диска Mac для Moonsweeper

Установщик Linux

Для сборки установщиков в Linux вам необходимо установить инструмент Ruby Effing package management! — используйте руководство по установке, чтобы настроить его.Как только это будет сделано, вы можете использовать стандартную команду для создания файла пакета Linux.

Полученный пакет будет создан в папке target / . В зависимости от вашей платформы файл пакета будет называться .deb , .pkg.tar.xz или .rpm . Ваши пользователи могут установить этот файл с помощью своего диспетчера пакетов.

Установщик Ubuntu для Moonsweeper

Упаковка приложений PyQt5 с помощью fbs — Практическое руководство по программированию графического интерфейса пользователя Python с помощью Qt

fbs — это кроссплатформенная система упаковки PyQt5, которая поддерживает создание настольных приложений для Windows, Mac и Linux (Ubuntu, Fedora и Arch).Построенный на основе PyInstaller , он скрывает некоторые неровности и определяет стандартную структуру проекта, которая позволяет полностью автоматизировать процесс сборки. Включенный API ресурсов особенно полезен, упрощая работу с внешними файлами данных, изображениями или сторонними библиотеками — распространенной проблемой при объединении приложений.

Это руководство проведет вас через шаги создания приложений PyQt5 с использованием fbs с нуля и для преобразования существующих проектов в систему.Если ваше приложение ориентировано на несколько платформ, на него определенно стоит обратить внимание.

Если вы нетерпеливы, вы можете скачать установщики Moonsweeper непосредственно для Windows, MacOS или Linux (Ubuntu).

fbs под лицензией GPL. Это означает, что вы можете использовать систему fbs бесплатно в пакетах, распространяемых с GPL. Для коммерческих (или других не-GPL) пакетов вы должны купить коммерческую лицензию. Актуальную информацию см. На странице лицензирования fbs.

fbs построен на основе PyInstaller. Вы также можете использовать PyInstaller непосредственно для упаковки приложений, см. Нашу упаковку приложений PyQt5 и PySide2 для Windows с помощью учебника PyInstaller.

Требования для установки

fbs работает из коробки как с PyQt PyQt5 , так и с Qt для Python PySide2 . Единственное другое требование — это PyInstaller , который сам обрабатывает упаковку. Вы можете установить их в виртуальной среде (или в виртуальной среде ваших приложений), чтобы поддерживать чистоту вашей среды.

fbs поддерживает только Python версий 3.5 и 3.6

трепать
  python3 -m venv fbsenv
  

После создания активируйте виртуальную среду, запустив ее из командной строки —

трепать
  # В Mac / Linux:
источник fbsenv / bin / активировать

# В Windows:
вызовите fbsenv \ scripts \ activate.bat
  

Наконец, установите необходимые библиотеки. Для PyQt5 вы должны использовать —

питон
  pip3 установить fbs PyQt5 PyInstaller == 3.4
  

Или для Qt для Python (PySide2) —

питон
  pip3 установить fbs PySide2 PyInstaller == 3.4
  

fbs устанавливает инструмент командной строки fbs на ваш путь, который обеспечивает доступ ко всем командам управления fbs . Чтобы увидеть полный список доступных команд, запустите fbs .

трепать
  martin @ Martins-Laptop testapp $ fbs
использование: fbs [-h]
           {startproject, run, freeze, installer, sign_installer, repo,
           загрузка, выпуск, проверка, очистка, buildvm, runvm, gengpgkey, регистрация, вход, init_licensing}
           ...

fbs

позиционные аргументы:
  {startproject, run, freeze, installer, sign_installer, repo,
  загрузка, выпуск, проверка, очистка, buildvm, runvm, gengpgkey, регистрация, вход, init_licensing}
    startproject Запустить новый проект в текущем каталоге
    запустить Запустить приложение из источника
    freeze Скомпилируйте свой код в автономный исполняемый файл
    установщик Создайте установщик для вашего приложения
    sign_installer Подписать установщик, чтобы операционная система пользователя доверяла ему
    репо Создавать файлы для автоматических обновлений
    загрузить Загрузите установщик и репозиторий в fbs.ш
    выпустить версию Bump и запустить очистить, заморозить, ..., загрузить
    test Выполнять автоматизированные тесты
    clean Удалить предыдущие выходы сборки
    buildvm Создайте виртуальную машину Linux. Например: buildvm ubuntu
    runvm Запустите виртуальную машину Linux. Например: runvm ubuntu
    gengpgkey Сгенерировать ключ GPG для подписи кода Linux
    зарегистрироваться Создайте учетную запись для загрузки файлов
    войти Сохраните данные своей учетной записи в secret.json
    init_licensing Генерация публичных / приватных ключей для лицензирования

необязательные аргументы:
  -h, --help показать это справочное сообщение и выйти
  

Теперь вы готовы начать упаковывать приложения с fbs .

Запуск приложения

Если вы запускаете приложение PyQt5 с нуля, вы можете использовать команду управления fbs startproject для создания полной, работающей и упаковываемой заглушки приложения в текущей папке. Это дает вам возможность тестировать (и продолжать тестирование) пакетируемость вашего приложения по мере его разработки, а не оставлять это до конца.

Команда предложит вам ответить на несколько вопросов, позволяя указать детали вашего приложения.Эти значения будут записаны в исходный код и конфигурацию вашего приложения. Простое приложение будет создано в папке src / в текущем каталоге.

трепать
  martin @ Martins-Laptop ~ $ fbs startproject
Название приложения [MyApp]: HelloWorld
Автор [Мартин]: Мартин Фицпатрик
Идентификатор пакета Mac (например, com.martin.helloworld, необязательно):
  

Если у вас уже есть собственное работающее приложение PyQt5, вам необходимо: а) использовать сгенерированное приложение в качестве ориентира для преобразования вашего в ту же структуру, или б) создать новое приложение с помощью startproject и перенести код.

Запуск вашего нового проекта

Вы можете запустить это новое приложение с помощью следующей команды fbs в той же папке, из которой вы запустили startproject .

Если все работает, это должно показать вам небольшое пустое окошко с заголовком вашего приложения — интересно, а?

Приложение Hello World в Windows

Приложение Hello World на Mac

Приложение Hello World в Linux

Структура приложения

Команда startproject генерирует необходимую структуру папок для приложения fbs PyQt5.Это включает src / build , который содержит настройки сборки для вашего пакета, main / icons, , который содержит значки приложений, и src / python для источника.

трепать
 .
└── src
    ├── строить
    │ └── настройки
    │ ├── base.json
    │ ├── linux.json
    │ └── mac.json
    └── главная
        ├── иконки
        │ ├── Icon.ico
        │ ├── README.md
        │ ├── база
        │ │ ├── 16.PNG
        │ │ ├── 24.png
        │ │ ├── 32.png
        │ │ ├── 48.png
        │ │ └── 64.png
        │ ├── linux
        │ │ ├── 1024.png
        │ │ ├── 128.png
        │ │ ├── 256.png
        │ │ └── 512.png
        │ └── mac
        │ ├── 1024.png
        │ ├── 128.png
        │ ├── 256.png
        │ └── 512.png
        └── питон
            └── main.py

  

Ваше простое приложение PyQt5 сгенерировано в src / main / python / main.py и представляет собой полный рабочий пример, на котором вы можете создать свой собственный код.

питон
  из fbs_runtime.application_context.PyQt5 импортировать ApplicationContext
из PyQt5.QtWidgets импортировать QMainWindow

import sys

класс AppContext (ApplicationContext): # 1. Подкласс ApplicationContext
    def run (self): # 2. Реализуйте run ()
        окно = QMainWindow ()
        version = self.build_settings ['версия']
        окно.setWindowTitle ("HelloWorld v" + версия)
        window.resize (250, 150)
        window.show ()
        return self.app.exec_ () # 3. Завершите run () этой строкой

если __name__ == '__main__':
    appctxt = AppContext () # 4. Создайте экземпляр подкласса
    exit_code = appctxt.run () # 5. Вызов run ()
    sys.exit (код_выхода)
  

Если вы создавали приложения PyQt5 до того, как заметите, что создание приложения с fbs представляет новую концепцию — ApplicationContext .

Контекст приложения

При создании приложений PyQt5 обычно используется ряд компонентов или ресурсов, которые используются во всем приложении. Они обычно хранятся в QMainWindow или как глобальные переменные, которые могут стать немного беспорядочными по мере роста вашего приложения. ApplicationContext обеспечивает центральное место для инициализации и хранения этих компонентов, а также предоставляет доступ к некоторым основным функциям fbs .

Объект ApplicationContext также создает и содержит ссылку на глобальный объект QApplication , доступный в контексте ApplicationContext.приложение . Каждое приложение Qt должно иметь одно (и только одно) QApplication для хранения цикла событий и основных настроек. Без fbs вы обычно определяете это в основе вашего скрипта и вызываете .exec () , чтобы запустить цикл обработки событий.

Без fbs это выглядело бы примерно так —

питон
  если __name__ == '__main__':
    app = QApplication ()
    w = MyCustomWindow ()
    app.exec_ ()
  

Эквивалент с fbs будет —

питон
  если __name__ == '__main__':
    ctx = ApplicationContext ()
    w = MyCustomWindow ()
    ctx.app.exec_ ()
  

Если вы хотите создать свою собственную инициализацию `QApplication`, вы можете перезаписать свойство` .app` в своем подклассе `ApplicationContext`, используя` cached_property` (см. Ниже).

Этот базовый пример очевиден для подражания. Однако, как только вы начнете добавлять пользовательские стили и переводы в свое приложение, инициализация может немного увеличиться. Чтобы все было хорошо структурировано, fbs рекомендует создать метод .run в вашем ApplicationContext .

Этот метод должен обрабатывать настройку вашего приложения, такую ​​как создание и отображение окна, наконец, запуск цикла обработки событий на объекте .app . Этот последний шаг выполняется путем вызова self.app.exec_ () в конце метода.

питон
  класс AppContext (ApplicationContext):
    def run (self):
        ...
        вернуть self.app.exec_ ()
  

По мере усложнения инициализации вы можете для ясности разбить подразделы на отдельные методы, например —

питон
  класс AppContext (ApplicationContext):
    def run (self):
        себя.setup_fonts ()
        self.setup_styles ()
        self.setup_translations ()
        вернуть self.app.exec_ ()

    def setup_fonts (самостоятельно):
        # ...сделай что-нибудь ...

    def setup_styles (самостоятельно):
        # ...сделай что-нибудь ...

    def setup_translations (самостоятельно):
        # ...сделай что-нибудь ...

  

При выполнении будет вызван метод `.run ()` и запустится ваш цикл обработки событий. Выполнение продолжается в этом цикле событий до тех пор, пока приложение не будет закрыто, после чего ваш файл `.run () `метод вернет (с соответствующим кодом выхода).

Создание реального приложения

Простое приложение не так много, поэтому ниже мы рассмотрим нечто более полное — приложение Moonsweeper из моих 15-минутных приложений. Обновленный исходный код доступен для загрузки ниже.

Источник Moonsweeper (fbs) PyQt5

Источник Лунохода (fbs) PySide2

Здесь описаны только изменения, необходимые для преобразования Moonsweeper в fbs .Если вы хотите увидеть, как работает сам Moonsweeper, см. Оригинальную статью о приложении. Пользовательские значки приложений были созданы с использованием иконок Freepik.

Проект имеет ту же базовую структуру, что и приложение-заглушка, которое мы создали выше.

питон
 .
├── README.md
├── requirements.txt
├── screenshot-minesweeper1.jpg
├── screenshot-minesweeper2.jpg
└── src
    ├── строить
    │ └── настройки
    │ ├── base.json
    │ ├── linux.json
    │ └── mac.json
    └── главная
        ├── Installer.nsi
        ├── иконки
        │ ├── Icon.ico
        │ ├── README.md
        │ ├── база
        │ │ ├── 16.png
        │ │ ├── 24.png
        │ │ ├── 32.png
        │ │ ├── 48.png
        │ │ └── 64.png
        │ ├── linux
        │ │ ├── 1024.png
        │ │ ├── 128.png
        │ │ ├── 256.png
        │ │ └── 512.png
        │ └── mac
        │ ├── 1024.png
        │ ├── 128.PNG
        │ ├── 256.png
        │ └── 512.png
        ├── питон
        │ ├── __init__.py
        │ └── main.py
        └── ресурсы
            ├── база
            │ └── изображения
            │ ├── bomb.png
            │ ├── bug.png
            │ ├── clock-select.png
            │ ├── cross.png
            │ ├── flag.png
            │ ├── plus.png
            │ ├── rocket.png
            │ ├── смайлик-lol.png
            │ └── смайлик.PNG
            └── mac
                └── Содержание
                    └── Info.plist
  

src / build / settings / base.json хранит основные сведения о приложении, включая точку входа для запуска приложения с fbs run или после упаковки.

json
  {
    "app_name": "Лунный тральщик",
    "author": "Мартин Фицпатрик",
    "main_module": "src / main / python / main.py",
    "версия": "0.0.0"
}
  

Точка входа сценария находится в основе src / main / python / main.py . Это создает объект AppContext и вызывает метод .run () для запуска приложения.

питон
  если __name__ == '__main__':
    appctxt = AppContext ()
    exit_code = appctxt.run ()
    sys.exit (код_выхода)
  

Контекст приложения определяет метод .run () для обработки инициализации. В данном случае это состоит из создания и отображения главного окна, а затем запуска цикла обработки событий.

питон
  из fbs_runtime.application_context.PyQt5 импортировать ApplicationContext, \
    cached_property


класс AppContext (ApplicationContext):
    def run (self):
        self.main_window.show ()
        вернуть self.app.exec_ ()

    @cached_property
    def main_window (сам):
        return MainWindow (self) # Передать контекст окну.

    # ... отрезать ...
  

cached_property декоратор

Модель .Метод run () обращается к self.main_window . Вы заметите, что этот метод заключен в декоратор fbs @cached_property . Этот декоратор превращает метод в свойство (например, декоратор Python @property ) и кэширует возвращаемое значение.

При первом обращении к свойству выполняется метод и кэшируется возвращаемое значение. При последующих вызовах кэшированное значение возвращается напрямую, ничего не выполняя. Это также имеет побочный эффект, заключающийся в том, что создание этих объектов откладывается до тех пор, пока они не понадобятся.

Вы можете использовать @cached_property для определения каждого компонента приложения (окна, панели инструментов, соединения с базой данных или других ресурсов). Однако у вас нет , у вас нет для использования @cached_property — в качестве альтернативы вы можете объявить все свойства в своем блоке ApplicationContext .__ init__ , как показано ниже.

питон
  из fbs_runtime.application_context.PyQt5 импортировать ApplicationContext

класс AppContext (ApplicationContext):

    def __init __ (self, * args, ** kwargs):
        супер (AppContext, сам).__init __ (* аргументы, ** kwargs)

        self.window = Окно ()

    def run (self):
        self.window.show ()
        вернуть self.app.exec_ ()

  

Доступ к ресурсам с помощью

.get_resource

Приложениям обычно требуются дополнительные файлы данных помимо исходного кода — например, значки файлов, изображения, стили (файлы Qt .qss ) или документация. Вы также можете связать библиотеки или двоичные файлы для конкретной платформы. Для упрощения этого fbs определяет структуру папок и метод доступа, которые без проблем работают как в разрабатываемых, так и в распространяемых версиях.

Папка верхнего уровня resources / должна содержать папку base плюс любую комбинацию других папок, показанных ниже. Папка base содержит файлы, общие для всех платформ, в то время как папки для конкретных платформ могут использоваться для любых файлов, специфичных для данной ОС.

трепать
  base / # для файлов, необходимых для всех ОС
windows / # для файлов, требуемых только в Windows
mac / # "" "" "Mac
linux / # "" "" "Linux
arch / # "" "" "Arch Linux
fedora / # "" "" "Debian Linux
ubuntu / # "" "" "Ubuntu Linux
  

Размещение файлов в нужном месте для загрузки из распределенного приложения на всех платформах обычно является одним из самых сложных моментов при распространении приложений PyQt.Очень удобно, что fbs сделает это за вас.

Для упрощения загрузки ресурсов из папки resources / в ваши приложения fbs предоставляет метод ApplicationContext.get_resource () . Этот метод принимает имя файла, который можно найти где-нибудь в папке resources / , и возвращает абсолютный путь к этому файлу. Вы можете использовать этот возвращенный абсолютный путь, чтобы открыть файл как обычно.

питон
  из fbs_runtime.application_context.PyQt5 импорт ApplicationContext, cached_property


класс AppContext (ApplicationContext):

    # ... отрезать ...

    @cached_property
    def img_bomb (сам):
        вернуть QImage (self.get_resource ('images / bug.png'))

    @cached_property
    def img_flag (сам):
        вернуть QImage (self.get_resource ('images / flag.png'))

    @cached_property
    def img_start (сам):
        вернуть QImage (self.get_resource ('images / rocket.png'))

    @cached_property
    def img_clock (сам):
        вернуть QImage (self.get_resource ('images / clock-select.png'))

    @cached_property
    def status_icons (self):
        возвращаться {
            STATUS_READY: QIcon (self.get_resource ("images / plus.png")),
            STATUS_PLAYING: QIcon (self.get_resource ("images / smiley.png")),
            STATUS_FAILED: QIcon (self.get_resource ("images / cross.png")),
            STATUS_SUCCESS: QIcon (self.get_resource ("images / smiley-lol.png"))
        }

    # ... отрезать ...
  

В нашем приложении Moonsweeper выше у нас есть файл изображения bomb , доступный по адресу src / main / resources / base / images / bug.jpg . Вызывая ctx.get_resource ('images / bug.png') , мы получаем абсолютный путь к этому файлу изображения в файловой системе, что позволяет нам открыть файл в нашем приложении.

Если файл не существует, вместо него будет вызвана `FileNotFoundError`.

Удобство этого метода заключается в том, что он прозрачно обрабатывает папки платформы в src / main / resources , давая приоритет файлам, зависящим от ОС. Например, если тот же файл также присутствует в src / main / resources / mac / images / bug.jpg , и мы назвали ctx.get_resource ('images / bug.jpg') и получили версию файла для Mac.

Дополнительно get_resource работает как при запуске из исходного кода, так и при запуске замороженной или установленной версии вашего приложения. Если ваши ресурсы / загружаются правильно локально, вы можете быть уверены, что они будут правильно загружаться в ваших распределенных приложениях.

Использование

ApplicationContext из приложения

Как показано выше, наш объект ApplicationContext имеет кэшированные свойства для загрузки и возврата ресурсов.Чтобы позволить нам получить к ним доступ из нашего QMainWindow , мы можем передать контекст и сохранить ссылку на него в нашем окне __init__ .

питон
  класс MainWindow (QMainWindow):
    def __init __ (self, ctx):
        super (MainWindow, self) .__ init __ ()

        self.ctx = ctx # Сохранение ссылки на контекст для ресурсов и т. д.

# ... отрезать ...
  

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

питон
  l = QLabel ()
        l.setPixmap (QPixmap.fromImage (self.ctx.img_bomb))
        l.setAlignment (Qt.AlignRight | Qt.AlignVCenter)
        hb.addWidget (l)

# ... отрезать ...

        l = QLabel ()
        l.setPixmap (QPixmap.fromImage (self.ctx.img_clock))
        l.setAlignment (Qt.AlignLeft | Qt.AlignVCenter)
        hb.addWidget (l)

  

Первый раз мы обращаемся к self.ctx.img_bomb файл будет загружен, QImage создан и возвращен. При последующих вызовах мы будем получать изображение из кеша.

питон
  def init_map (самостоятельно):
        # Добавить позиции на карту
        для x в диапазоне (0, self.b_size):
            для y в диапазоне (0, self.b_size):
                w = Pos (x, y, self.ctx.img_flag, self.ctx.img_start, self.ctx.img_bomb)
                self.grid.addWidget (ш, у, х)
                # Подключить сигнал для обработки расширения.w.clicked.connect (self.trigger_start)
                w.expandable.connect (self.expand_reveal)
                w.ohno.connect (self.game_over)

# ... отрезать ...

        self.button.setIcon (self.ctx.status_icons [STATUS_PLAYING])

# ... отрезать ...

    def update_status (сам, статус):
        self.status = статус
        self.button.setIcon (self.ctx.status_icons [self.status])

  

Это все изменения, необходимые для того, чтобы приложение Moonsweeper могло быть упаковано с fbs .Если вы откроете исходную папку, вы сможете запустить ее, как раньше.

Если это сработает, вы готовы перейти к замораживанию и встраиванию установщика.

Зависание приложения

Замораживание — это процесс превращения приложения Python в автономный исполняемый файл, который может работать на компьютере другого пользователя. Используйте следующую команду, чтобы превратить исходный код приложения в автономный исполняемый файл:

Результирующий исполняемый файл зависит от платформы, на которой вы заморозили — исполняемый файл будет работать только на той ОС, на которой вы его создали (например.грамм. исполняемый файл, созданный в Windows, будет работать на другом компьютере с Windows, но не на Mac).

  • Windows создаст исполняемый файл .exe в папке target /
  • MacOS X создаст пакет приложений .app в target / .app
  • Linux создаст исполняемый файл в папке target /

В Windows вам может потребоваться установить Windows 10 SDK, хотя fbs предложит вам, если это так.

Создание установщика

Хотя вы можете делиться исполняемыми файлами с пользователями, настольные приложения обычно распространяются с установщиками , которые обрабатывают процесс помещения исполняемого файла (и любых других файлов) в нужное место. См. Следующие разделы для получения информации о конкретных платформах перед созданием

.

Вы должны заморозить ваше приложение сначала затем создать установщик.

Установщик Windows

Установщик Windows позволяет пользователям выбирать каталог для установки исполняемого файла и добавляет ваше приложение в меню «Пуск» пользователя.Приложение также добавляется к установленным программам, что позволяет пользователям удалять его.

Перед созданием установщиков в Windows вам необходимо установить NSIS и убедиться, что его установочный каталог находится в вашем PATH . Затем вы можете создать установщик, используя —

Установщик Windows будет создан по адресу target / Setup.exe .

Установщик Windows для Moonsweeper

Программа установки Windows NSIS для Moonsweeper

Программа установки для Mac

Нет дополнительных шагов для создания установщика MacOS.Просто запустите команду fbs

На Mac команда сгенерирует образ диска с адресом target / .dmg . Этот образ диска будет содержать комплект приложений и ярлык для папки «Приложения». Когда ваши пользователи открывают его, они могут перетащить приложение в папку «Приложения», чтобы установить его.

Загрузите комплект Moonsweeper .dmg здесь

Программа установки macOS для Moonsweeper

Образ диска Mac для Moonsweeper

Установщик Linux

Для сборки установщиков в Linux вам необходимо установить инструмент Ruby Effing package management! — используйте руководство по установке, чтобы настроить его.Как только это будет сделано, вы можете использовать стандартную команду для создания файла пакета Linux.

Полученный пакет будет создан в папке target / . В зависимости от вашей платформы файл пакета будет называться .deb , .pkg.tar.xz или .rpm . Ваши пользователи могут установить этот файл с помощью своего диспетчера пакетов.

Установщик Ubuntu для Moonsweeper

Упаковка приложений PyQt5 с помощью fbs — Практическое руководство по программированию графического интерфейса пользователя Python с помощью Qt

fbs — это кроссплатформенная система упаковки PyQt5, которая поддерживает создание настольных приложений для Windows, Mac и Linux (Ubuntu, Fedora и Arch).Построенный на основе PyInstaller , он скрывает некоторые неровности и определяет стандартную структуру проекта, которая позволяет полностью автоматизировать процесс сборки. Включенный API ресурсов особенно полезен, упрощая работу с внешними файлами данных, изображениями или сторонними библиотеками — распространенной проблемой при объединении приложений.

Это руководство проведет вас через шаги создания приложений PyQt5 с использованием fbs с нуля и для преобразования существующих проектов в систему.Если ваше приложение ориентировано на несколько платформ, на него определенно стоит обратить внимание.

Если вы нетерпеливы, вы можете скачать установщики Moonsweeper непосредственно для Windows, MacOS или Linux (Ubuntu).

fbs под лицензией GPL. Это означает, что вы можете использовать систему fbs бесплатно в пакетах, распространяемых с GPL. Для коммерческих (или других не-GPL) пакетов вы должны купить коммерческую лицензию. Актуальную информацию см. На странице лицензирования fbs.

fbs построен на основе PyInstaller. Вы также можете использовать PyInstaller непосредственно для упаковки приложений, см. Нашу упаковку приложений PyQt5 и PySide2 для Windows с помощью учебника PyInstaller.

Требования для установки

fbs работает из коробки как с PyQt PyQt5 , так и с Qt для Python PySide2 . Единственное другое требование — это PyInstaller , который сам обрабатывает упаковку. Вы можете установить их в виртуальной среде (или в виртуальной среде ваших приложений), чтобы поддерживать чистоту вашей среды.

fbs поддерживает только Python версий 3.5 и 3.6

трепать
  python3 -m venv fbsenv
  

После создания активируйте виртуальную среду, запустив ее из командной строки —

трепать
  # В Mac / Linux:
источник fbsenv / bin / активировать

# В Windows:
вызовите fbsenv \ scripts \ activate.bat
  

Наконец, установите необходимые библиотеки. Для PyQt5 вы должны использовать —

питон
  pip3 установить fbs PyQt5 PyInstaller == 3.4
  

Или для Qt для Python (PySide2) —

питон
  pip3 установить fbs PySide2 PyInstaller == 3.4
  

fbs устанавливает инструмент командной строки fbs на ваш путь, который обеспечивает доступ ко всем командам управления fbs . Чтобы увидеть полный список доступных команд, запустите fbs .

трепать
  martin @ Martins-Laptop testapp $ fbs
использование: fbs [-h]
           {startproject, run, freeze, installer, sign_installer, repo,
           загрузка, выпуск, проверка, очистка, buildvm, runvm, gengpgkey, регистрация, вход, init_licensing}
           ...

fbs

позиционные аргументы:
  {startproject, run, freeze, installer, sign_installer, repo,
  загрузка, выпуск, проверка, очистка, buildvm, runvm, gengpgkey, регистрация, вход, init_licensing}
    startproject Запустить новый проект в текущем каталоге
    запустить Запустить приложение из источника
    freeze Скомпилируйте свой код в автономный исполняемый файл
    установщик Создайте установщик для вашего приложения
    sign_installer Подписать установщик, чтобы операционная система пользователя доверяла ему
    репо Создавать файлы для автоматических обновлений
    загрузить Загрузите установщик и репозиторий в fbs.ш
    выпустить версию Bump и запустить очистить, заморозить, ..., загрузить
    test Выполнять автоматизированные тесты
    clean Удалить предыдущие выходы сборки
    buildvm Создайте виртуальную машину Linux. Например: buildvm ubuntu
    runvm Запустите виртуальную машину Linux. Например: runvm ubuntu
    gengpgkey Сгенерировать ключ GPG для подписи кода Linux
    зарегистрироваться Создайте учетную запись для загрузки файлов
    войти Сохраните данные своей учетной записи в secret.json
    init_licensing Генерация публичных / приватных ключей для лицензирования

необязательные аргументы:
  -h, --help показать это справочное сообщение и выйти
  

Теперь вы готовы начать упаковывать приложения с fbs .

Запуск приложения

Если вы запускаете приложение PyQt5 с нуля, вы можете использовать команду управления fbs startproject для создания полной, работающей и упаковываемой заглушки приложения в текущей папке. Это дает вам возможность тестировать (и продолжать тестирование) пакетируемость вашего приложения по мере его разработки, а не оставлять это до конца.

Команда предложит вам ответить на несколько вопросов, позволяя указать детали вашего приложения.Эти значения будут записаны в исходный код и конфигурацию вашего приложения. Простое приложение будет создано в папке src / в текущем каталоге.

трепать
  martin @ Martins-Laptop ~ $ fbs startproject
Название приложения [MyApp]: HelloWorld
Автор [Мартин]: Мартин Фицпатрик
Идентификатор пакета Mac (например, com.martin.helloworld, необязательно):
  

Если у вас уже есть собственное работающее приложение PyQt5, вам необходимо: а) использовать сгенерированное приложение в качестве ориентира для преобразования вашего в ту же структуру, или б) создать новое приложение с помощью startproject и перенести код.

Запуск вашего нового проекта

Вы можете запустить это новое приложение с помощью следующей команды fbs в той же папке, из которой вы запустили startproject .

Если все работает, это должно показать вам небольшое пустое окошко с заголовком вашего приложения — интересно, а?

Приложение Hello World в Windows

Приложение Hello World на Mac

Приложение Hello World в Linux

Структура приложения

Команда startproject генерирует необходимую структуру папок для приложения fbs PyQt5.Это включает src / build , который содержит настройки сборки для вашего пакета, main / icons, , который содержит значки приложений, и src / python для источника.

трепать
 .
└── src
    ├── строить
    │ └── настройки
    │ ├── base.json
    │ ├── linux.json
    │ └── mac.json
    └── главная
        ├── иконки
        │ ├── Icon.ico
        │ ├── README.md
        │ ├── база
        │ │ ├── 16.PNG
        │ │ ├── 24.png
        │ │ ├── 32.png
        │ │ ├── 48.png
        │ │ └── 64.png
        │ ├── linux
        │ │ ├── 1024.png
        │ │ ├── 128.png
        │ │ ├── 256.png
        │ │ └── 512.png
        │ └── mac
        │ ├── 1024.png
        │ ├── 128.png
        │ ├── 256.png
        │ └── 512.png
        └── питон
            └── main.py

  

Ваше простое приложение PyQt5 сгенерировано в src / main / python / main.py и представляет собой полный рабочий пример, на котором вы можете создать свой собственный код.

питон
  из fbs_runtime.application_context.PyQt5 импортировать ApplicationContext
из PyQt5.QtWidgets импортировать QMainWindow

import sys

класс AppContext (ApplicationContext): # 1. Подкласс ApplicationContext
    def run (self): # 2. Реализуйте run ()
        окно = QMainWindow ()
        version = self.build_settings ['версия']
        окно.setWindowTitle ("HelloWorld v" + версия)
        window.resize (250, 150)
        window.show ()
        return self.app.exec_ () # 3. Завершите run () этой строкой

если __name__ == '__main__':
    appctxt = AppContext () # 4. Создайте экземпляр подкласса
    exit_code = appctxt.run () # 5. Вызов run ()
    sys.exit (код_выхода)
  

Если вы создавали приложения PyQt5 до того, как заметите, что создание приложения с fbs представляет новую концепцию — ApplicationContext .

Контекст приложения

При создании приложений PyQt5 обычно используется ряд компонентов или ресурсов, которые используются во всем приложении. Они обычно хранятся в QMainWindow или как глобальные переменные, которые могут стать немного беспорядочными по мере роста вашего приложения. ApplicationContext обеспечивает центральное место для инициализации и хранения этих компонентов, а также предоставляет доступ к некоторым основным функциям fbs .

Объект ApplicationContext также создает и содержит ссылку на глобальный объект QApplication , доступный в контексте ApplicationContext.приложение . Каждое приложение Qt должно иметь одно (и только одно) QApplication для хранения цикла событий и основных настроек. Без fbs вы обычно определяете это в основе вашего скрипта и вызываете .exec () , чтобы запустить цикл обработки событий.

Без fbs это выглядело бы примерно так —

питон
  если __name__ == '__main__':
    app = QApplication ()
    w = MyCustomWindow ()
    app.exec_ ()
  

Эквивалент с fbs будет —

питон
  если __name__ == '__main__':
    ctx = ApplicationContext ()
    w = MyCustomWindow ()
    ctx.app.exec_ ()
  

Если вы хотите создать свою собственную инициализацию `QApplication`, вы можете перезаписать свойство` .app` в своем подклассе `ApplicationContext`, используя` cached_property` (см. Ниже).

Этот базовый пример очевиден для подражания. Однако, как только вы начнете добавлять пользовательские стили и переводы в свое приложение, инициализация может немного увеличиться. Чтобы все было хорошо структурировано, fbs рекомендует создать метод .run в вашем ApplicationContext .

Этот метод должен обрабатывать настройку вашего приложения, такую ​​как создание и отображение окна, наконец, запуск цикла обработки событий на объекте .app . Этот последний шаг выполняется путем вызова self.app.exec_ () в конце метода.

питон
  класс AppContext (ApplicationContext):
    def run (self):
        ...
        вернуть self.app.exec_ ()
  

По мере усложнения инициализации вы можете для ясности разбить подразделы на отдельные методы, например —

питон
  класс AppContext (ApplicationContext):
    def run (self):
        себя.setup_fonts ()
        self.setup_styles ()
        self.setup_translations ()
        вернуть self.app.exec_ ()

    def setup_fonts (самостоятельно):
        # ...сделай что-нибудь ...

    def setup_styles (самостоятельно):
        # ...сделай что-нибудь ...

    def setup_translations (самостоятельно):
        # ...сделай что-нибудь ...

  

При выполнении будет вызван метод `.run ()` и запустится ваш цикл обработки событий. Выполнение продолжается в этом цикле событий до тех пор, пока приложение не будет закрыто, после чего ваш файл `.run () `метод вернет (с соответствующим кодом выхода).

Создание реального приложения

Простое приложение не так много, поэтому ниже мы рассмотрим нечто более полное — приложение Moonsweeper из моих 15-минутных приложений. Обновленный исходный код доступен для загрузки ниже.

Источник Moonsweeper (fbs) PyQt5

Источник Лунохода (fbs) PySide2

Здесь описаны только изменения, необходимые для преобразования Moonsweeper в fbs .Если вы хотите увидеть, как работает сам Moonsweeper, см. Оригинальную статью о приложении. Пользовательские значки приложений были созданы с использованием иконок Freepik.

Проект имеет ту же базовую структуру, что и приложение-заглушка, которое мы создали выше.

питон
 .
├── README.md
├── requirements.txt
├── screenshot-minesweeper1.jpg
├── screenshot-minesweeper2.jpg
└── src
    ├── строить
    │ └── настройки
    │ ├── base.json
    │ ├── linux.json
    │ └── mac.json
    └── главная
        ├── Installer.nsi
        ├── иконки
        │ ├── Icon.ico
        │ ├── README.md
        │ ├── база
        │ │ ├── 16.png
        │ │ ├── 24.png
        │ │ ├── 32.png
        │ │ ├── 48.png
        │ │ └── 64.png
        │ ├── linux
        │ │ ├── 1024.png
        │ │ ├── 128.png
        │ │ ├── 256.png
        │ │ └── 512.png
        │ └── mac
        │ ├── 1024.png
        │ ├── 128.PNG
        │ ├── 256.png
        │ └── 512.png
        ├── питон
        │ ├── __init__.py
        │ └── main.py
        └── ресурсы
            ├── база
            │ └── изображения
            │ ├── bomb.png
            │ ├── bug.png
            │ ├── clock-select.png
            │ ├── cross.png
            │ ├── flag.png
            │ ├── plus.png
            │ ├── rocket.png
            │ ├── смайлик-lol.png
            │ └── смайлик.PNG
            └── mac
                └── Содержание
                    └── Info.plist
  

src / build / settings / base.json хранит основные сведения о приложении, включая точку входа для запуска приложения с fbs run или после упаковки.

json
  {
    "app_name": "Лунный тральщик",
    "author": "Мартин Фицпатрик",
    "main_module": "src / main / python / main.py",
    "версия": "0.0.0"
}
  

Точка входа сценария находится в основе src / main / python / main.py . Это создает объект AppContext и вызывает метод .run () для запуска приложения.

питон
  если __name__ == '__main__':
    appctxt = AppContext ()
    exit_code = appctxt.run ()
    sys.exit (код_выхода)
  

Контекст приложения определяет метод .run () для обработки инициализации. В данном случае это состоит из создания и отображения главного окна, а затем запуска цикла обработки событий.

питон
  из fbs_runtime.application_context.PyQt5 импортировать ApplicationContext, \
    cached_property


класс AppContext (ApplicationContext):
    def run (self):
        self.main_window.show ()
        вернуть self.app.exec_ ()

    @cached_property
    def main_window (сам):
        return MainWindow (self) # Передать контекст окну.

    # ... отрезать ...
  

cached_property декоратор

Модель .Метод run () обращается к self.main_window . Вы заметите, что этот метод заключен в декоратор fbs @cached_property . Этот декоратор превращает метод в свойство (например, декоратор Python @property ) и кэширует возвращаемое значение.

При первом обращении к свойству выполняется метод и кэшируется возвращаемое значение. При последующих вызовах кэшированное значение возвращается напрямую, ничего не выполняя. Это также имеет побочный эффект, заключающийся в том, что создание этих объектов откладывается до тех пор, пока они не понадобятся.

Вы можете использовать @cached_property для определения каждого компонента приложения (окна, панели инструментов, соединения с базой данных или других ресурсов). Однако у вас нет , у вас нет для использования @cached_property — в качестве альтернативы вы можете объявить все свойства в своем блоке ApplicationContext .__ init__ , как показано ниже.

питон
  из fbs_runtime.application_context.PyQt5 импортировать ApplicationContext

класс AppContext (ApplicationContext):

    def __init __ (self, * args, ** kwargs):
        супер (AppContext, сам).__init __ (* аргументы, ** kwargs)

        self.window = Окно ()

    def run (self):
        self.window.show ()
        вернуть self.app.exec_ ()

  

Доступ к ресурсам с помощью

.get_resource

Приложениям обычно требуются дополнительные файлы данных помимо исходного кода — например, значки файлов, изображения, стили (файлы Qt .qss ) или документация. Вы также можете связать библиотеки или двоичные файлы для конкретной платформы. Для упрощения этого fbs определяет структуру папок и метод доступа, которые без проблем работают как в разрабатываемых, так и в распространяемых версиях.

Папка верхнего уровня resources / должна содержать папку base плюс любую комбинацию других папок, показанных ниже. Папка base содержит файлы, общие для всех платформ, в то время как папки для конкретных платформ могут использоваться для любых файлов, специфичных для данной ОС.

трепать
  base / # для файлов, необходимых для всех ОС
windows / # для файлов, требуемых только в Windows
mac / # "" "" "Mac
linux / # "" "" "Linux
arch / # "" "" "Arch Linux
fedora / # "" "" "Debian Linux
ubuntu / # "" "" "Ubuntu Linux
  

Размещение файлов в нужном месте для загрузки из распределенного приложения на всех платформах обычно является одним из самых сложных моментов при распространении приложений PyQt.Очень удобно, что fbs сделает это за вас.

Для упрощения загрузки ресурсов из папки resources / в ваши приложения fbs предоставляет метод ApplicationContext.get_resource () . Этот метод принимает имя файла, который можно найти где-нибудь в папке resources / , и возвращает абсолютный путь к этому файлу. Вы можете использовать этот возвращенный абсолютный путь, чтобы открыть файл как обычно.

питон
  из fbs_runtime.application_context.PyQt5 импорт ApplicationContext, cached_property


класс AppContext (ApplicationContext):

    # ... отрезать ...

    @cached_property
    def img_bomb (сам):
        вернуть QImage (self.get_resource ('images / bug.png'))

    @cached_property
    def img_flag (сам):
        вернуть QImage (self.get_resource ('images / flag.png'))

    @cached_property
    def img_start (сам):
        вернуть QImage (self.get_resource ('images / rocket.png'))

    @cached_property
    def img_clock (сам):
        вернуть QImage (self.get_resource ('images / clock-select.png'))

    @cached_property
    def status_icons (self):
        возвращаться {
            STATUS_READY: QIcon (self.get_resource ("images / plus.png")),
            STATUS_PLAYING: QIcon (self.get_resource ("images / smiley.png")),
            STATUS_FAILED: QIcon (self.get_resource ("images / cross.png")),
            STATUS_SUCCESS: QIcon (self.get_resource ("images / smiley-lol.png"))
        }

    # ... отрезать ...
  

В нашем приложении Moonsweeper выше у нас есть файл изображения bomb , доступный по адресу src / main / resources / base / images / bug.jpg . Вызывая ctx.get_resource ('images / bug.png') , мы получаем абсолютный путь к этому файлу изображения в файловой системе, что позволяет нам открыть файл в нашем приложении.

Если файл не существует, вместо него будет вызвана `FileNotFoundError`.

Удобство этого метода заключается в том, что он прозрачно обрабатывает папки платформы в src / main / resources , давая приоритет файлам, зависящим от ОС. Например, если тот же файл также присутствует в src / main / resources / mac / images / bug.jpg , и мы назвали ctx.get_resource ('images / bug.jpg') и получили версию файла для Mac.

Дополнительно get_resource работает как при запуске из исходного кода, так и при запуске замороженной или установленной версии вашего приложения. Если ваши ресурсы / загружаются правильно локально, вы можете быть уверены, что они будут правильно загружаться в ваших распределенных приложениях.

Использование

ApplicationContext из приложения

Как показано выше, наш объект ApplicationContext имеет кэшированные свойства для загрузки и возврата ресурсов.Чтобы позволить нам получить к ним доступ из нашего QMainWindow , мы можем передать контекст и сохранить ссылку на него в нашем окне __init__ .

питон
  класс MainWindow (QMainWindow):
    def __init __ (self, ctx):
        super (MainWindow, self) .__ init __ ()

        self.ctx = ctx # Сохранение ссылки на контекст для ресурсов и т. д.

# ... отрезать ...
  

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

питон
  l = QLabel ()
        l.setPixmap (QPixmap.fromImage (self.ctx.img_bomb))
        l.setAlignment (Qt.AlignRight | Qt.AlignVCenter)
        hb.addWidget (l)

# ... отрезать ...

        l = QLabel ()
        l.setPixmap (QPixmap.fromImage (self.ctx.img_clock))
        l.setAlignment (Qt.AlignLeft | Qt.AlignVCenter)
        hb.addWidget (l)

  

Первый раз мы обращаемся к self.ctx.img_bomb файл будет загружен, QImage создан и возвращен. При последующих вызовах мы будем получать изображение из кеша.

питон
  def init_map (самостоятельно):
        # Добавить позиции на карту
        для x в диапазоне (0, self.b_size):
            для y в диапазоне (0, self.b_size):
                w = Pos (x, y, self.ctx.img_flag, self.ctx.img_start, self.ctx.img_bomb)
                self.grid.addWidget (ш, у, х)
                # Подключить сигнал для обработки расширения.w.clicked.connect (self.trigger_start)
                w.expandable.connect (self.expand_reveal)
                w.ohno.connect (self.game_over)

# ... отрезать ...

        self.button.setIcon (self.ctx.status_icons [STATUS_PLAYING])

# ... отрезать ...

    def update_status (сам, статус):
        self.status = статус
        self.button.setIcon (self.ctx.status_icons [self.status])

  

Это все изменения, необходимые для того, чтобы приложение Moonsweeper могло быть упаковано с fbs .Если вы откроете исходную папку, вы сможете запустить ее, как раньше.

Если это сработает, вы готовы перейти к замораживанию и встраиванию установщика.

Зависание приложения

Замораживание — это процесс превращения приложения Python в автономный исполняемый файл, который может работать на компьютере другого пользователя. Используйте следующую команду, чтобы превратить исходный код приложения в автономный исполняемый файл:

Результирующий исполняемый файл зависит от платформы, на которой вы заморозили — исполняемый файл будет работать только на той ОС, на которой вы его создали (например.грамм. исполняемый файл, созданный в Windows, будет работать на другом компьютере с Windows, но не на Mac).

  • Windows создаст исполняемый файл .exe в папке target /
  • MacOS X создаст пакет приложений .app в target / .app
  • Linux создаст исполняемый файл в папке target /

В Windows вам может потребоваться установить Windows 10 SDK, хотя fbs предложит вам, если это так.

Создание установщика

Хотя вы можете делиться исполняемыми файлами с пользователями, настольные приложения обычно распространяются с установщиками , которые обрабатывают процесс помещения исполняемого файла (и любых других файлов) в нужное место. См. Следующие разделы для получения информации о конкретных платформах перед созданием

.

Вы должны заморозить ваше приложение сначала затем создать установщик.

Установщик Windows

Установщик Windows позволяет пользователям выбирать каталог для установки исполняемого файла и добавляет ваше приложение в меню «Пуск» пользователя.Приложение также добавляется к установленным программам, что позволяет пользователям удалять его.

Перед созданием установщиков в Windows вам необходимо установить NSIS и убедиться, что его установочный каталог находится в вашем PATH . Затем вы можете создать установщик, используя —

Установщик Windows будет создан по адресу target / Setup.exe .

Установщик Windows для Moonsweeper

Программа установки Windows NSIS для Moonsweeper

Программа установки для Mac

Нет дополнительных шагов для создания установщика MacOS.Просто запустите команду fbs

На Mac команда сгенерирует образ диска с адресом target / .dmg . Этот образ диска будет содержать комплект приложений и ярлык для папки «Приложения». Когда ваши пользователи открывают его, они могут перетащить приложение в папку «Приложения», чтобы установить его.

Загрузите комплект Moonsweeper .dmg здесь

Программа установки macOS для Moonsweeper

Образ диска Mac для Moonsweeper

Установщик Linux

Для сборки установщиков в Linux вам необходимо установить инструмент Ruby Effing package management! — используйте руководство по установке, чтобы настроить его.Как только это будет сделано, вы можете использовать стандартную команду для создания файла пакета Linux.

Полученный пакет будет создан в папке target / . В зависимости от вашей платформы файл пакета будет называться .deb , .pkg.tar.xz или .rpm . Ваши пользователи могут установить этот файл с помощью своего диспетчера пакетов.

Установщик Ubuntu для Moonsweeper

Qt для Python и fbs — Qt для Python

fbs предоставляет мощную среду для упаковки, создания установщиков и подписания ваших заявление.Он также позволяет вам управлять обновлениями вашего приложения. Так как fbs основан на PyInstaller поддерживает Linux, macOS и Windows.

Для получения дополнительной информации см. Руководство по fbs и руководство по fbs.

Препарат

Установка fbs (> = 0.7.6) осуществляется через pip :

Если вы используете виртуальную среду, не забудьте активировать ее перед установкой fbs.

После установки можно использовать исполняемый файл fbs.

Запуск нового проекта

fbs предоставляет полезные функции для создания базовой структуры проекта со следующими команда:

Эта команда предлагает вам ответить на несколько вопросов для настройки деталей вашего проекта, например:

После этого у вас будет каталог src / , содержащий следующую структуру:

 └── src
    ├── строить
    │ └── настройки
    └── главная
        ├── иконки
        │ ├── база
        │ ├── linux
        │ └── mac
        └── питон
 

Внутри каталога settings есть несколько файлов JSON, которые можно отредактировать, чтобы включить в них больше информация о вашем проекте.

Основной файл находится в каталоге python , а его содержимое по умолчанию:

 из fbs_runtime.application_context импортировать ApplicationContext
из PySide6.QtWidgets импортировать QMainWindow

import sys

если __name__ == '__main__':
    appctxt = ApplicationContext () # 1. Создание экземпляра ApplicationContext
    окно = QMainWindow ()
    window.resize (250, 150)
    window.show ()
    exit_code = appctxt.app.exec_ () # 2. Вызов appctxt.app.exec_ ()
    sys.выход (код_выхода)
 

В этом примере показан пустой QMainWindow . Вы можете запустить его с помощью следующей команды:

Зависание приложения

После того, как вы убедились, что приложение работает правильно, вы можете продолжить замораживание выполните следующую команду:

После завершения процесса вы увидите сообщение с указанием местоположения вашего исполняемого файла. Для пример:

 Готово. Теперь вы можете запустить `target / MyApp / MyApp`. Если это не сработает, см.
https: // build-system.fman.io/troubleshooting.
 

Теперь вы можете попробовать запустить приложение. В результате получится то же окно, что вы видели с помощью fbs запустить команду :

Примечание

Так обстоит дело с Linux. Для других платформ, таких как macOS, вам необходимо ввести каталог: target / MyApp.app / Contents / macOS . Для Windows вам нужно найти MyApp.exe исполняемый файл.

Программное обеспечение для сетевого резервного копирования

— Ferro Backup System


Первая установка

Ferro Backup System ™ основана на архитектуре клиент-сервер.Установочный файл содержит два приложения:
  • FBS Server (сервер) — приложение
  • FBS Worker (клиент) — приложение
FBS Server устанавливается только один раз — на компьютер, который используется как резервный сервер. Другое приложение — FBS Worker — устанавливается на все компьютеры, с которых будет выполняться резервное копирование данных. В некоторых случаях FBS Worker также устанавливается на резервный сервер.

Неправильно настроенное антивирусное ПО (также Защитник Windows) может нарушить работу диска и замедлить резервное копирование.Перед началом работы с программным обеспечением необходимо правильно настроить антивирусное программное обеспечение .

Рис. 1.1 Ferro Backup System — система резервного копирования данных. Настройка — выбор компонентов

Порядок установки значения не имеет.

УСТАНОВКА СЕРВЕРНОГО ПРИЛОЖЕНИЯ (FBS Server) .

Место установки:
Сервер FBS должен быть установлен на компьютере, используемом в качестве резервного сервера.

Описание:
В пакет сервера включены два файла: FBSServer.exe — исполняемый файл размером 915 КБ и FBSDataBase.abs — файл конфигурации с начальным размером 1,7 МБ.
После копирования файлов FBSServer.exe и FBSDataBase.abs в папку назначения установщик запустит FBSServer.exe со следующими параметрами:

Таким образом, FBSServer будет установлен как системная служба и запускаться автоматически при запуске системы. Служба FBSServer по умолчанию работает с локальной системной учетной записью.Чтобы изменить метод запуска по умолчанию или изменить учетную запись службы, откройте окно свойств в консоли MMC — Службы (Панель управления -> Администрирование -> Службы).

После завершения установки программа готова к запуску.

Примечание. Хотя файл конфигурации FBSDatabase.abs сразу после установки занимает менее 2 МБ, после настройки программы размер файла может увеличиться (в зависимости от количества подключенных рабочих станций) до 150 МБ.

УСТАНОВКА ПРОГРАММЫ РАБОЧЕЙ СТАНЦИИ (FBS Worker) .

Место установки:
FBS Worker должен быть установлен на всех компьютерах, с которых будет выполняться резервное копирование данных, то есть на офисных компьютерах, портативных компьютерах и серверах, работающих под Windows.

Описание:
В пакет рабочей станции включены два файла: FBSWorker.exe — исполняемый файл размером 140 КБ и FBSWroker.ini — файл конфигурации с начальным размером 2 КБ.Во время установки вам необходимо ввести имя или IP-адрес компьютера, на котором устанавливается FBSServer.

Рис. 2.1 Ferro Backup System ™. Установка и настройка FBS Worker


Эта информация записана в файле FBSWorker.ini.

После копирования FBSWorker.exe и FBSWorker.ini в папку назначения программа установки запустит FBSWorker.exe со следующими параметрами:

Таким образом, FBSWorker будет установлен как системная служба и запускаться автоматически при запуске системы.Служба FBSWorker по умолчанию работает с локальной системной учетной записью. Чтобы изменить метод запуска по умолчанию или изменить учетную запись службы, откройте окно свойств в консоли MMC — Службы (Панель управления -> Администрирование -> Службы).

После завершения установки программа уже работает в фоновом режиме.

Примечание. В приложении нет окна, поэтому, чтобы убедиться, что оно запущено, найдите процесс с именем FBSWorker в диспетчере задач.

Автоматические обновления

Обратите внимание, что Ferro Backup System включает автоматические обновления для FBS Worker. Если в будущем будут выпущены новые версии приложения для рабочей станции, их нужно будет только установить на сервере. FBS Server автоматически обновит FBS Worker на всех рабочих станциях. Чтобы обновить приложение на сервере резервного копирования, просто установите новую версию в ту же папку, что и раньше. Чтобы сохранить все настройки, установите новую версию, не удаляя предыдущую.

Удаленная установка клиентского приложения (FBS Worker)

Для пользователей пакета Pro Package также доступен пакет MSI для автоматической установки модуля FBS Worker через GPO (FBSWorker.msi) .

Информация в этой главе предназначена только для ИТ-специалистов.

Подробнее об удаленной установке FBS Worker см. Ниже. Удаленная установка не требуется для полноценного использования Ferro Backup System, но она экономит время, которое в противном случае тратится на локальную (ручную) установку FBS Worker на компьютеры в сети компании.

FBS Worker включает механизмы автоматической установки и настройки. Запуск программы с необходимыми переключателями установит (или удалит) системную службу FBS Worker. Перед установкой FBSWorker.exe необходимо загрузить на целевой компьютер. FBSWorker.exe можно найти на любом компьютере, на котором FBS Worker уже был установлен локально, в папке

 Program Files \ Ferro Software \ Ferro Backup System \. 
.

После копирования файла FBSWorker.exe на целевой компьютер его необходимо запустить с помощью переключателя / INSTALL.Это установит FBS Worker как системную службу. Он будет запускаться автоматически в локальной системной учетной записи при каждой загрузке системы. Если в дополнение к параметру / INSTALL используется параметр / HOSTNAME: , во время установки будет создан файл конфигурации FBSWorker.ini. Он будет содержать запись с указанием имени хоста (сервера резервного копирования). Эта запись сообщает FBSWorker, к какому компьютеру подключаться, и жизненно важна для обеспечения правильной работы программного обеспечения в сетевой среде.

Для установки FBS Worker на удаленный компьютер можно использовать ряд различных команд и методов, включая netexec, rcmd, WMI, GPO. Ниже описано, как установить программу с помощью бесплатного приложения PsExec — PsTools. PsExec автоматически скопирует выбранную программу на удаленный компьютер и запустит ее там.

PsExec — синтаксис командной строки и переключатели

Синтаксис

psexec [\\ computer [, computer2 [, …] | @ файл] [- u пользователь [-p psswd]] [- ns] [- l] [- s | -e] [- x] [- i [сессия]] [- c [-f | -v]] [-w каталог] [- d] [- <приоритет>] [- an, n ,…] cmd [arguments]

Параметры:

Ниже описаны только те переключатели, которые необходимы для удаленной установки FBS Worker. Полное описание всех переключателей см .: PsExec Марк Руссинович

компьютер

Выполняет команду на выбранном компьютере (ах). Использование переключателя «\\ *» запустит команду на всех компьютерах в домене.

@file

Выполняет команду на каждом компьютере, указанном в выбранном файле.

-c

Перед запуском команды выбранная программа копируется на удаленный компьютер.

-d

Не дожидается остановки программы (и не удаляет программу, когда это делается)

-f

Копирует выбранную программу на удаленный компьютер, даже если файл уже существует на целевом компьютере

-p

Имя пользователя (на удаленном компьютере)

-u

Пароль пользователя (на удаленном компьютере)

cmd

имя программы для выполнения

аргументов

Необязательные переключатели выбранной программы

FBS Worker — синтаксис командной строки и переключатели

Синтаксис:

FBSWorker [[/ install [/ force] | / uninstall] [/ hostname: n] [/ silent]], [/ start | / stop]

Параметры:

Ниже описаны только те переключатели, которые необходимы для удаленной установки FBS Worker.Полное описание всех переключателей см .: FBS Worker — синтаксис командной строки и переключатели

/ install

устанавливает FBSWorker как системную службу (автоматический запуск, учетная запись SYSTEM)

/ hostname: backup_server_name

Во время установки будет создан файл конфигурации FBSWorker, включающий имя (или IP-адрес) резервного сервера. Во время операции удаления с использованием этого параметра, за которым следует пустая строка (пробел) после двоеточия, файл конфигурации будет удален с диска.

/ silent

При использовании с переключателем / install или / uninstall диалоговое окно, показывающее процесс установки или удаления FBSWorker, отображаться не будет.

Установка FBS Worker с помощью PsExec

Чтобы установить FBS Worker на удаленный компьютер, запустите:

psexec \\ КОМПЬЮТЕР -u ПОЛЬЗОВАТЕЛЬ -p ПАРОЛЬ -c -f -d FBSWorker.exe / INSTALL 
/ HOSTNAME: BACKUP_SERVER / SILENT

Чтобы установить FBS Worker на несколько компьютеров одновременно, создайте текстовый файл, содержащий имена этих компьютеров, по одному в каждой строке.Сохраните этот файл на диске (например, как COMPUTER_LIST.TXT), а затем запустите PsExec со следующими параметрами:

psexec @ COMPUTER_LIST.TXT -u ПОЛЬЗОВАТЕЛЬ -p ПАРОЛЬ -c -f -d FBSWorker.exe / УСТАНОВИТЬ 
/ HOSTNAME: BACKUP_SERVER / SILENT

Дополнительная информация

Возможна удаленная установка на компьютерах, работающих под Windows NT, Windows 2000, Windows XP, Windows 2003, Windows Vista, Windows 2008. Ресурс $ IPC должен быть доступен, а порт TCP: 135 должен быть открыт на те компьютеры.

См. Также:

Советы, приемы и ответы на ваши общие вопросы:

В. Я открыл FBS сегодня утром и получаю «Ошибка выполнения 53, файл не найден». Что я делаю?

A. Это может произойти, если программное обеспечение безопасности вашего компьютера помещает в карантин один из файлов FBS, необходимых для работы программного обеспечения. Причины, по которым файл мог быть помещен в карантин, многочисленны, но, скорее всего, это было вызвано вирусом, прикрепившимся к исполняемому файлу программы.

Чтобы исправить эту ошибку самостоятельно, найдите свой компакт-диск FBS и переустановите его поверх существующей программы, как если бы вы каждый год получали компакт-диск с обновлениями. Если это не сработает, внимательно выполните следующие действия:

1. Перейти к Утилиты | Сохраните данные и сделайте полную резервную копию своих данных (файлы настройки, все программы и все годы), сохранив их либо на флэш-накопитель, либо на свой C (локальный диск) где-нибудь, кроме папки FBSWIN, где их можно найти и извлечь. ваши данные позже.Сделайте это для каждого набора данных (трехбуквенное название компании), которое у вас есть. Убедитесь, что вы успешно сделали полную резервную копию всех файлов данных FBS и любых электронных таблиц или других файлов в папке FBSWIN / DATA. Если вы не уверены, что сделали это успешно, обратитесь за помощью в службу технической поддержки FBS, прежде чем продолжить.

2. Перейдите в область Мой компьютер на вашем компьютере и найдите диск C, под ним найдите папку с файлами FBSWIN и удалите всю папку.

3. Вставьте компакт-диск FBS в машину и выполните новую установку.

4. Позвоните в службу поддержки FBS, чтобы повторно авторизовать программное обеспечение.

5. Восстановите ваши данные. Сначала войдите в FBS и на экране «Выбор компании» убедитесь, что путь к файлу — «C: / FBSWIN», а затем, когда появится файл FBSWIN, нажмите кнопку Create Directory (см. Экран выше). Затем вы можете восстановить свой данные одним из этих двух методов:

а.Используя Windows Explorer , найдите файл резервной копии, щелкните его правой кнопкой мыши и выберите «Извлечь все», перейдите к FBSWIN / DATA в качестве пункта назначения.

г. Создайте «фиктивную» компанию (например, «AAA») на экране FBS Изменить компанию , затем на Утилиты | Восстановите данные , перейдите в место, где вы сделали резервные копии, и щелкните файлы резервных копий, которые вы хотите восстановить. Наконец, удалите фиктивную компанию, выбрав ее и нажав кнопку Удалить компанию в меню «Изменить компанию».

________________________________________________________________________________________________________________

Q. Подходит к концу года, и я знаю, что добавил несколько бухгалтерских счетов и центров, и некоторые расходы изменились. Что мне нужно перепроверить в FBS, чтобы убедиться, что я все правильно протягиваю? У вас есть контрольный список?

A. Вам нужно будет проверить и обновить пару определений и мостов, чтобы убедиться, что вы учитываете все расходы.Все, что извлекается из ряда счетов главной книги, необходимо проверять: расписание F, 1099s, определения анализа затрат и определения отчетов Smart Feeder, определяемых пользователем.

Если вы используете оценку запасов (E.CLIPSE), вам нужно будет проверить настройку моста, чтобы убедиться, что ваши строки расходов установлены на правильные диапазоны, а центры незавершенного производства и маркетинга назначены новым производственным центрам. Проверьте свою Таблицу распределения накладных расходов на наличие новых центров и запускайте ежеквартальный отчет о стандартных расходах / мониторинге поставщиков, чтобы определить, нужно ли корректировать драйверы затрат.

Контрольный список

  • График F
  • 1099-е
  • Анализ затрат
  • Определяется пользователем
  • Мост инвентаризационной оценки
  • Распределение накладных расходов
  • Определение баланса
  • Определение отчета о прибылях и убытках

Кроме того, не стоит ждать до конца года, чтобы выполнить этот контрольный список, потому что к тому времени вы можете забыть, что вы добавили. Гораздо безопаснее делать это всякий раз, когда добавляются новые учетные записи или центры бухгалтерской книги!


________________________________________________________________________________________________________________

Q. Я пытаюсь сделать резервную копию своих данных на компакт-диске через FBS и получаю сообщение об ошибке 280 . Что я делаю не так?

A. Ошибка 280 указывает на неисправный «диск». Если вы пытаетесь сохранить на дискету или карту памяти (флэш-накопитель), это может означать, что устройство повреждено, поэтому попробуйте другое. Если вы пытаетесь сохранить данные непосредственно на CD или DVD, проблема в том, что FBS не может записывать или сохранять данные непосредственно на «оптический привод». Вы по-прежнему можете создавать резервные копии данных FBS на компакт-диск, но вам нужно будет выполнить следующие действия:

1.В Utilities Save Data выберите место назначения на вашем локальном диске (например, C: \ My Documents или, что еще лучше, создайте новую папку с именем «FBS Backup»).
2. Через My Computer или В проводнике Windows перейдите в то место, где вы только что сделали резервную копию. Имя файла будет содержать три инициала вашей компании и дату (например, xxx_101110.zip).
3. Вставьте в компьютер записываемый CD или DVD .


4.Щелкните правой кнопкой мыши файл резервной копии и выберите Отправить на , а затем выберите привод CD / DVD. Затем встроенный модуль записи Microsoft скопирует файл резервной копии на оптический привод.
5. Чтобы убедиться, что файл был успешно скопирован, просмотрите CD / DVD через окно s Explorer или Мой компьютер .

Мы рекомендуем оставить исходный файл резервной копии на жестком диске. Хотя внутренние резервные копии не защитят вас от сбоя жесткого диска, они будут легко доступны в случае повреждения одного или нескольких файлов данных.

________________________________________________________________________________________________________________

Q. Есть ли какие-нибудь ярлыки, чтобы сделать ввод данных в FBS быстрее и проще?

A. Да, в FBS встроено более 40 «горячих клавиш», которые делают ввод и навигацию быстрее и проще. Чтобы узнать, что это за клавиши и что они делают, перейдите в меню Help на главном экране FBS, затем нажмите FBS Hot Keys , чтобы отобразить, распечатать или экспортировать этот список.

Вот несколько примеров горячих клавиш для ввода данных TransAction Plus:

Нажмите клавишу F12 после выбора поставщика, чтобы просмотреть все предыдущие записи, сделанные для этого поставщика в течение этого календарного года. Эта горячая клавиша действует во многом как макрос ввода (или «шаблон») в том смысле, что вы можете сохранить любую из этих предыдущих записей как новые записи (конечно, с новой датой и необходимыми изменениями в суммах, счетах и ​​центрах).

Говоря о макросах, клавиша F8 вызывает ваш макрос или список поставщиков в зависимости от того, в каком поле вы находитесь, а F9 включает и выключает список поставщиков.

Щелкните F4 (или « + », « * » или «/») в любом числовом поле, чтобы вызвать калькулятор , из которого вы можете вставить вычисленное значение обратно в TransAction Plus. дважды нажав Enter (аналогично кнопке Return Value ).

_______________________________________________________________________________________________________________________________

Q. Я в сети, и внезапно я не могу открыть FBS, но мой коллега может.Что не так?

A. Либо значок FBS / обратный путь к серверу, либо общий файл на вашем ПК поврежден.

Первое, что нужно попробовать, это переустановить рабочую станцию ​​FBS на ваш компьютер.

Вставьте текущий компакт-диск с FBS в локальный компьютер и нажмите кнопку Exit ; не устанавливайте стандартное программное обеспечение FBS на рабочую станцию.


Найдите значок FBSWorkStation на компакт-диске с помощью проводника Windows и дважды щелкните его, чтобы переустановить общие файлы рабочей станции на локальном компьютере.


Затем удалите текущий значок FBS на рабочем столе и создайте новый значок на рабочем столе. Для этого щелкните правой кнопкой мыши на рабочем столе, выберите New и Shortcut .


Затем вам нужно будет указать, где находится FBS на вашем сервере. Вы можете посмотреть свойства ярлыка вашего коллеги, чтобы убедиться, что вы используете тот же путь. После того, как вы правильно настроили путь, нажмите Next , а затем Finish . Теперь у вас есть рабочий значок FBS на рабочем столе.

Наконец, запустите FBS и на экране «Изменить компанию» убедитесь, что вы указываете правильную папку, чтобы найти файл данных на сервере.

____________________________________________________________________________________________________________________

Q. Я заметил папку со значками в окне каталога данных в каталоге FBSWIN на экране «Изменить компанию». Что это такое?

A. Два типа пользовательских контекстных меню были добавлены в версии 8.0: текст и значки, определенные пользователем. Эта функция позволяет вам определять список пунктов контекстного меню для выбранных задач на главном экране FBS, а не работать со стандартными меню. Эти ярлыки специфичны для компании. Например, вы можете указать задачу, которую часто выполняете, такую ​​как добавление чеков или депозитов; или вы можете указать ссылку на часто используемый модуль, например на «Бюджет жизненного цикла».

1. На экране FBS hOme щелкните Setup

2. В меню «Служебные программы» щелкните « Пользовательское меню».

3. Чтобы добавить значок ярлыка меню, нажмите кнопку Добавить .

4. Введите описание, укажите пункт меню и изображение из раскрывающихся списков. Примечание: (вы можете щелкнуть по графикам, чтобы указать изображение. Графики должны находиться в папке с именем «Иконки» в основной папке FBS. Это могут быть следующие типы изображений: JPG, BMP или GIF; или актуальные файлы значков (ICO).)

5. Нажмите Сохранить , чтобы принять изменения, или Отмена , чтобы выйти.

6. в меню «Утилиты»> «Установить предпочтения» установите для параметра «CM: Тип пользовательского меню» значение «1», чтобы выбрать значки, или «2», чтобы выбрать «Текст».

7. Перезапустите FBS и вернитесь в выбранную компанию.

8. Щелкните нужный значок или текст, чтобы открыть ярлык.

Как загрузить, установить и войти в MT4?

Вы можете скачать торговую платформу двумя способами. Первый способ — скачать его с сайта fbs.com. Нажмите «Торговля» в верхнем меню, а затем выберите платформу под надписью «Торговые платформы».

Второй способ — скачать программу из личного кабинета. После входа в систему нажмите кнопку «Торговая платформа» в центре экрана.

FBS предлагает варианты для операционных систем (Windows, iOS и Android), а также веб-трейдера.

Например, давайте выберем MetaTrader 4 для Windows. Загрузите установочный файл и откройте его, чтобы начать процесс установки.

Щелкните «Выполнить».

Прочтите лицензионное соглашение с METAQUOTES SOFTWARE CORP и отметьте, что вы согласны с условиями.

Нажмите «Далее», а затем «Готово», когда загрузка закончится.

Чтобы войти в свой MT4, вам понадобится пароль торгового счета, предоставленный вам FBS при регистрации вашего торгового счета.

Вы можете найти эти данные в регистрационном письме от FBS. Обратите внимание, что исходный пароль к вашему MT4 можно просмотреть только в течение 24 часов после регистрации.

Если вы не сохраняли его, вы можете получить новый пароль в личном кабинете.

Щелкните номер счета в меню слева. Затем вы увидите опцию «создать новый пароль».

Нажмите «Сгенерировать пароль». Вот и все — у вас есть новый пароль учетной записи.

Добавить комментарий

Ваш адрес email не будет опубликован.