Как сделать новое окно

Обновлено: 17.05.2024

Как создать новое окно в PyQt5?

Есть созданное в Designer главное окно с кнопкой. Все это сохранено в файл test.ui.
Также в Designer создано новое пустое окно класса QWidget и сохранено в файл test2.ui.

В файле нового окна test2.py содержится:


В файле главного окна test.py:


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

Решения вопроса 1 Sergey6661313 @Sergey6661313

причина: переменная new_window умирает сразу как заканчивается функция new_form() (почему? во славу Сатаны конечно!)
Пути решения:

1) создать какую нибудь глобальную переменную. Но глобальные переменные это плохой тон (незнаю почему) :


2) создать переменную глобальный массив окон (так делаю я - это всё ещё "плохой тон" но зато потом можно циклом разом удалить все создаваемые окна например. ) :


3) назначить new_window дочерю main_window (идиологически правильный вариант):


4) new_window должна быть переменной того обьекта который гарантировано не будет удалён (незнаю насчёт идиалогии. все варианты правильные. ):

Почему Яндекс.Браузер открывает вкладки в новом окне

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

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

Залипла клавиша

Одна из распространенных причин, почему Яндекс.Браузер открывается в отдельном окне — это клавиша Shift , которая банально залипла. Внешне этого может быть не видно. Или под клавишу попал мусор, который давит на контакт, создавая эффект длинного нажатия. И потом, если вы хотите открыть новую вкладку или, находясь на сайте, пытаетесь перейти по ссылке, получается она открывается в новом окне.

Почему Яндекс Браузер открывается в новом окне

  1. Подденьте клавишу пинцетом или пилочкой для ногтей. Она должна легко выскочить из гнезда.
  2. Почистите саму клавишу с помощью салфетки и спиртового раствора и также почистите гнездо. Часто клавиша залипать может, если был факт залития клавиатуры сладкими напитками.
  3. Вставьте клавишу на место и проверьте как она работает. Она должна легко нажиматься и возвращаться в исходное положение.

Вирусная активность

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

Сделать это можно с помощью сторонних облачных сервисов:

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

Проверка системы с помощью утилиты Dr Web

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

Заключение

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

Как добавить вкладку в Яндекс.Браузере

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

Что такое вкладка в браузере Яндекс

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

Вкладка в Яндекс Браузере

Каждая открытая страница имеет определенные особенности: на панели отображается графическая и текстовая информация:

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

Миниатюра стайта при наведении в Яндекс Браузере

Возможности вкладки

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

Контекстное меню вкладки в Яндекс Браузере

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

Добавляем новую страницу

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

Стартовая страница

По умолчанию после установки и при запуске браузера у вас открывается отображается стартовая страница:

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

Открыть новую вкладку в Яндекс Браузере

Как открыть вкладку в Яндекс-Браузер

Панель закладок

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

Как открыть новую вкладку в Яндекс Браузуре

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

Главная Яндекс Браузера

Горячие клавиши

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

  1. Для запуска новой вкладки нажмите одновременно на клавиатуре кнопки Ctrl + T .
  2. И далее выполняйте необходимые действия: переходите по сохраненным закладкам, часто посещаемым сайтам, которые отображаются на табло или ищите интересные ресурсы с помощью адресной строки.

Через меню

Довольно не очевидный способ открыть новую вкладку — через контекстное меню. Развернуть его можно кликнув по кнопке «бургер», (иконка в виде трех полос). При нажатии на неё появится небольшое окно с перечнем категорий и параметров, где вы можете перейти в системные разделы браузера, выполнять различные действия и изменять настройки обозревателя.

  1. Нажмите на «бургер» в правом верхнем углу и в выпадающем списке выберите «Дополнительно».
  2. Здесь откроется ещё одно всплывающее меню, выберите первый пункт «Новая вкладка».

Открыть новую вкладку в Яндексе

Настройки автоматического открытия вкладок

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

Настройка сработает, если вы закроете браузер с открытыми страницами. Если вы перед выключением браузера закроете и все страницы, тогда он так и запустится в следующий раз, пустым.

Инструкция, как настроить открытие вкладок в Яндексе:

  1. Для изменения настроек нажмите на кнопку «Меню» и в открывшемся списке выберите «Настройки» или скопируйте этот адрес browser://settings/ в умную строку обозревателя и нажмите Enter.
  2. Переключитесь в левой панели на раздел «Интерфейс» и в центральной части окна в блоке «Вкладки» отметьте галочками три последних пункта.

Настройка открытия ранее открытых вкладок в Яндекс браузере

Настройки вкладок

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

Настрйока отображения вкладок в Яндекс Браузере

Боковая панель

В Яндекс.Браузере есть очень удобная боковая панель, с её помощью можно быстро получить доступ к часто используемым функциям и сервисам Яндекса. Если вы открываете более 10 вкладок одновременно на панели автоматически появится специальная кнопка, на ней указано количество открытых страниц.

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

Вкладки в Яндекс Браузере в боковой панели

В Яндекс Браузере можно открыть сколько угодно вкладок. Вопрос скорее в том, сколько ваш ПК сможет обрабатывать. При загрузке более 20 сайтов на слабых ПК можно заметить довольно сильное падение производительности. А при одновременной работе 50 и более страниц компьютер может намертво зависнуть.

Как закрепить вкладку

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

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

Закреп вкладки в Яндекс Браузере

Сохранение вкладки в закладки

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

Сохранение вкладки в закладки

Если у вас нет учетной записи Яндекс создайте её, это займет не более 2 минут.

Как открыть случайно закрытую вкладку

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

Открытие окон и методы window

Материал на этой странице устарел, поэтому скрыт из оглавления сайта.

Всплывающее окно («попап» – от англ. Popup window) – один из старейших способов показать пользователю ещё один документ.

В этой статье мы рассмотрим открытие окон и ряд тонких моментов, которые с этим связаны.

…При запуске откроется новое окно с указанным URL.

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

Блокировщик всплывающих окон

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

Всплывающее окно блокируется в том случае, если вызов window.open произошёл не в результате действия посетителя.

Как же браузер понимает – посетитель вызвал открытие окна или нет?

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

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

Полный синтаксис window.open

Функция возвращает ссылку на объект window нового окна, либо null , если окно было заблокировано браузером.

url URL для загрузки в новое окно. name Имя нового окна. Может быть использовано в параметре target в формах. Если позднее вызвать window.open() с тем же именем, то браузеры (кроме IE) заменяют существующее окно на новое. params Строка с конфигурацией для нового окна. Состоит из параметров, перечисленных через запятую. Пробелов в ней быть не должно.

Значения параметров params .

  1. Настройки расположения окна:

Координаты верхнего левого угла относительно экрана. Ограничение: новое окно не может быть позиционировано за пределами экрана.

Ширина/высота нового окна. Минимальные значения ограничены, так что невозможно создать невидимое окно с нулевыми размерами.

Если координаты и размеры не указаны, то обычно браузер открывает не окно, а новую вкладку.

  1. Свойства окна:
  1. Ещё есть небольшое количество не кросс-браузерных свойств, которые обычно не используются. Вы можете узнать о них в документации, например MDN: window.open.

Браузер подходит к этим параметрам интеллектуально. Он может проигнорировать их часть или даже все, они скорее являются «пожеланиями», нежели «требованиями».

  • Если при вызове open указан только первый параметр, параметр отсутствует, то используются параметры по умолчанию. Обычно при этом будет открыто не окно, а вкладка, что зачастую более удобно.
  • Если указана строка с параметрами, но некоторые yes/no параметры отсутствуют, то браузер выставляет их в no . Поэтому убедитесь, что все нужные вам параметры выставлены в yes .
  • Когда не указан top/left , то браузер откроет окно с небольшим смещением относительно левого верхнего угла последнего открытого окна.
  • Если не указаны width/height , новое окно будет такого же размера, как последнее открытое.

Доступ к новому окну

Вызов window.open возвращает ссылку на новое окно. Она может быть использована для манипуляции свойствами окна, изменения URL, доступа к его переменным и т.п.

В примере ниже мы заполняем новое окно содержимым целиком из JavaScript:

А здесь модифицируем содержимое после загрузки:

Обратим внимание: сразу после window.open новое окно ещё не загружено. Это демонстрирует alert в строке (*) . Поэтому в примере выше окно модифицируется при onload . Можно было и поставить обработчик на DOMContentLoaded для newWin.document .

Связь между окнами – двухсторонняя.

Родительское окно получает ссылку на новое через window.open , а дочернее – ссылку на родителя window.opener .

Оно тоже может его модифицировать.

Если запустить пример ниже, то новое окно заменит содержимое текущего на 'Test' :

Same Origin Policy – защита проверкой протокол-сайт-порт

Большинство действий, особенно получение содержимого окна и его переменных, возможны лишь в том случае, если URL нового окна происходит из того же источника (англ. – «Same Origin»), т.е. совпадают домен, протокол и порт.

Иначе говоря, если новое окно содержит документ с того же сайта.

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

События

Наиболее важные события при работе с окном браузера:

  • onresize – событие изменения размера окна.
  • onscroll – событие при прокрутке окна.
  • onload – полностью загрузилась страница со всеми ресурсами.
  • onfocus/onblur – получение/потеря фокуса.

Методы и свойства

window.closed Свойство window.closed равно true , если окно закрыто. Может быть использовано, чтобы проверить, закрыл ли посетитель попап. window.close() Закрывает попап без предупреждений и уведомлений. Вообще, метод close() можно вызвать для любого окна, в том числе, текущего. Но если окно открыто не с помощью window.open() , то браузер может проигнорировать вызов close или запросить подтверждение.

Перемещение и изменение размеров окна

Существует несколько методов для перемещения/изменения размеров окна.

win.moveBy(x,y) Перемещает окно относительно текущего положения на x пикселей вправо и y пикселей вниз. Допускаются отрицательные значения. win.moveTo(x,y) Передвигает окно в заданную координатами x и y точку экрана монитора. win.resizeBy(width,height) Изменяет размер окна на заданную величину width/height (ширина/высота). Допускаются отрицательные значения. win.resizeTo(width,height) Изменяет размер окна на заданное значение.

Чтобы предотвратить использование этих методов с плохими целями, браузеры часто блокируют их выполнение. Как правило, они работают, если окно win открыто вызовом window.open из JavaScript текущей страницы и в нём нет дополнительных вкладок.

Ни свернуть ни развернуть

Заметим, что JavaScript не может ни свернуть ни развернуть ни «максимизировать» (Windows) окно.

Эти функции операционной системы от Frontend-разработчиков скрыты. Вызовы, описанные выше, в случае свёрнутого или максимизированного окна не работают.

Прокрутка окна

Прокрутка окна требуется, пожалуй, чаще всего. Мы уже говорили о ней в главе Размеры и прокрутка страницы:

win.scrollBy(x,y) Прокрутка окна на заданное число пикселей вперёд или назад. Допускаются отрицательные значения. win.scrollTo(x,y) Прокручивает окно к заданным координатам. elem.scrollIntoView(top) Этот метод прокрутки вызывается на элементе. При этом окно прокручивается так, чтобы элемент был полностью видим. Если параметр top равен true или не задан, то верх элемента совпадает с верхом окна. Если он равен false , то окно прокручивается так, чтобы нижний край элемента совпал с нижним краем окна.

Итого

  • Всплывающее окно открывается с помощью вызова window.open(url, name, params) .
  • Метод window.open возвращает ссылку на новое окно или null , если окно было заблокировано.
  • Современные браузеры блокируют окна, если window.open вызвано не в результате действия посетителя.
  • Обычно открывается вкладка, но если заданы размеры и позиция – то именно окно.
  • Новое окно имеет ссылку на родительское в window.opener .
  • Окна могут общаться между собой как угодно, если они из одного источника. Иначе действуют жёсткие ограничения безопасности.

Всплывающие окна используются нечасто. Ведь загрузить новую информацию можно динамически, с помощью технологии AJAX, а показать – в элементе <div> , расположенным над страницей ( z-index ). Ещё одна альтернатива – тег <iframe> .

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

Если вы хотите использовать всплывающее окно, предупредите посетителя об этом, так же и при использовании target="_blank" в ссылках или формах. Иконка открывающегося окошка на ссылке поможет посетителю понять, что происходит и не потерять оба окна из поля зрения.

Управление вкладками в браузере через сочетания клавиш. Удобно когда их открыто большое количество!

Сколько раз мне приходилось сталкиваться с тем, что открываешь браузер клиента, а там иконки открытых вкладок даже не помещаются в одну строку. А потом они еще спрашивают: "Почему у меня компьютер медленно работает?"

Google Chrome Google Chrome

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

Если мы открываем новую вкладку (по количеству 73, 74 и более), то ее просто уже не видно на экране.

Вот это максимальное количество открытых вкладок в браузере Google Chrome. Вот это максимальное количество открытых вкладок в браузере Google Chrome.

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

Например, для того чтобы закрыть открытую (текущую) вкладку в браузере необходимо нажать одновременно на клавиатуре "Ctrl" и "W".

Закрываем открытую вкладку Закрываем открытую вкладку

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

Настраиваем новую вкладку в браузере Mozilla Firefox

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

До недавнего времени настройка вкладок в Mozilla Firefox осуществлялась при помощи скрытых дополнений. Если вы вдруг еще используете версию ниже сороковой, то вам может пригодиться следующая инструкция:

Открываем браузер и вводим в строку запроса следующий текст: about:config. Соглашаемся с тем, что мы будем осторожны и переходим к следующему пункту.

Про многозадачность: окна под контролем

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

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


Переключение по-старому и по-новому

Переключение между приложениями – наверное то, что большинство из нас делает «на автомате», и никого, конечно, не удивит сочетание клавиш Alt + Tab. Но если одновременно нажать также и Ctrl (то есть Ctrl + Alt + Tab), то эта комбинация зафиксирует меню со всеми открытыми окнами на экране и позволит выбрать нужное приложение одним кликом мыши или касанием пальца (выбрать окно можно также с помощью стрелок на клавиатуре, а открыть – с помощью Enter). Может быть полезно, когда у вас открыто много окон.

Чуть менее известное, но тоже классическое сочетание клавиш Windows + Tab дает больше возможностей, чем кажется на первый взгляд.

Нажимая эти клавиши в актуальных версиях Windows 10, мы попадаем в раздел «Представление задач». Здесь можно не только переключаться между приложениями, но и воспользоваться «Временной шкалой» и «Виртуальными рабочими столами». К слову, вместо горячих клавиш вы можете кликнуть по кнопке «Представление задач» (обычно она расположена рядом с кнопкой «Пуск») или провести пальцем от левого края к центру сенсорного экрана. Кстати, если у вас современный ноутбук – попробуйте жест для тачпада: проведите по нему тремя пальцами вверх.



Режим Представление задач

«Временная шкала»

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

Для меня «Временная шкала» стала своеобразной машиной времени. Работа над многими проектами длится несколько дней. И если, допустим, в прошлую пятницу я работал с определенными сайтами и документами, вернувшись к этому проекту в среду, я смогу легко восстановить картину. Я просто отмотаю шкалу до нужной даты – той самой пятницы, увижу и смогу открыть те самые сайты и документы, в которые я тогда был погружен.



Поиск на Временной шкале

Поиск на «Временной шкале» тоже не раз меня выручал. В отличие от обычного поиска по файлам, я смогу искать не среди всех документов на устройстве (а их может быть очень много), а именно среди тех, с которыми я работал в последние дни. Возможно, вам знакомо сочетание Ctrl + F, запускающее поиск в Проводнике и во многих приложениях. Эта комбинация сработает и на экране «Представление задач»: то есть можно нажать сначала Windows + Tab, а затем – Ctrl + F и ввести искомое слово для поиска по «Временной шкале».

Виртуальные рабочие столы Windows 10

Концепция виртуальных рабочих столов далеко не нова. Если говорить о Windows, то одним из вариантов их использования была утилита Desktops, которую когда-то (последняя версия вышла в 2012 году) разработал Марк Руссинович. В Windows 10 виртуальные рабочие столы встроены в систему и помогают разделять потоки задач, переключаться между ними.

Если раньше вы не работали с виртуальными столами, для понимания их логики представьте такую аналогию: вам доступно несколько мониторов, на каждом вы можете открыть нужные программы, разделив их по рабочим потокам, например: на одном мониторе – работа с почтой и календарем, на другом – работа с несколькими документами Word, а на третьем – работа с браузером и OneNote. В каждый момент вы смотрите только на один монитор (виртуальный рабочий стол) со своим набором приложений. А переключаясь между виртуальными столами, вы как будто переводите взгляд с одного монитора на другой.



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

Создать новый виртуальный рабочий стол можно на экране «Представление задач»: нажмите Windows + Tab и перетащите нужные окна открытых приложений на поле с надписью «+ Создать рабочий стол», и они будут перемещены на другой виртуальный рабочий стол. Можно также создать новый, пустой виртуальный стол (Windows + Ctrl + D) и уже затем открыть на нем нужные программы.

«Переводить взгляд» (то есть переключаться между настроенными рабочими столами) можно, выбирая нужный стол на экране «Представление задач», но намного удобнее переключаться с помощью горячих клавиш: Windows + Ctrl + стрелки вправо/влево, а на современных тачпадах – 4 пальца влево или вправо.

Полезные решения для работы с несколькими приложениями

Теперь еще об одной повседневной необходимости – работе с несколькими приложениями одновременно.

Разделение экрана

Первой возможности, о которой хочу напомнить, уже много лет, и в первоначальном виде (под названием Aero Snap) она появилась еще в Windows 7. В Windows 10 ее возможности расширили и назвали Snap Assist. Речь про разделение экрана для закрепления двух (а в Windows 10 – до четырех) приложений.



Snap Assist предлагает выбрать второе окно для закрепления справа

Чтобы это сделать, нужно взять приложение за самую верхнюю полоску, поднести его к правой или левой границе экрана до появления на экране его «тени» и отпустить (тем самым, закрепив первое приложение), а затем в появившихся рядом миниатюрах других приложений выбрать второе для закрепления рядом. Сценарий несложный, работает и для мыши, и для пальца. Еще проще это можно сделать с помощью сочетания клавиш Windows + клавиши со стрелками вправо/влево. Этому сочетанию уже больше 10 лет, но у тех, кто применяет его впервые, и сейчас порой возникает ощущение «цифровой магии».

Любознательным пользователям также напомню, что в Windows 10 можно отправлять приложение в «четвертинку» экрана, перенеся его в угол (или используя дополнительно клавиши Windows + стрелки вверх/вниз). При закреплении двух приложений можно перемещать границу между ними, выделяя какому-то из приложений больше места. Чтобы выбрать приложения для закрепления на экране, можно кликнуть правой кнопкой мыши по их миниатюрам на экране «Представление задач».

Окно поверх

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

Мини-режим встроенного видеоплеера (приложение «Кино и ТВ», которое воспроизводит видео в Windows 10 по умолчанию). Запустите видео и нажмите на небольшую кнопку в правом нижнем углу (Воспроизвести в мини-режиме), окно с видеороликом будет размещено поверх всех окон.



Видео в режиме Окно поверх

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

Создание окна

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

Каждое окно должно быть связано с классом окна, даже если программа создает только один экземпляр этого класса. Важно понимать, что класс окна не является "классом" в смысле C++. Вместо этого это структура данных, используемая внутри операционной системы. Классы окон регистрируются в системе во время выполнения. Чтобы зарегистрировать новый класс окна, начните с заполнения структуры вндкласс :

Необходимо задать следующие члены структуры:

  • лпфнвндпрок — это указатель на определяемую приложением функцию, называемую процедурой окна или «процедурой окна». Процедура окна определяет большую часть поведения окна. Далее мы рассмотрим процедуру Windows. Сейчас просто рассматривайте это как прямую ссылку.
  • HINSTANCE — это обработчик экземпляра приложения. Получите это значение из параметра HINSTANCE объекта wWinMain.
  • лпсзкласснаме — это строка, идентифицирующая класс окна.

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

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

Затем передайте адрес структуры вндкласс в функцию registerClass . Эта функция регистрирует класс окна в операционной системе.

Создание окна

Чтобы создать новый экземпляр окна, вызовите функцию CreateWindowEx :

Подробное описание параметров можно прочитать в документации по функции CreateWindowEx , но вот краткий обзор:

  • Первый параметр позволяет указать некоторые необязательные поведения для окна (например, прозрачные окна). Присвойте этому параметру значение 0 для поведения по умолчанию.
  • CLASS_NAME имя класса окна. Определяет тип создаваемого окна.
  • Текст окна используется различными способами для различных типов окон. Если окно содержит заголовок, текст отображается в заголовке окна.
  • Стиль окна — это набор флагов, определяющих некоторый вид окна. Константа WS _ оверлаппедвиндов фактически является несколько флагов в сочетании с побитовой или. Вместе эти флаги предоставляют окну строку заголовка, границу, системное меню, а также кнопки сворачивания и развертывания . Этот набор флагов является наиболее распространенным стилем для окна приложения верхнего уровня.
  • Для расположения и размера константа во вт. _ уседефаулт означает использование значений по умолчанию.
  • Следующий параметр задает родительское окно или окно-владелец для нового окна. Если вы создаете дочернее окно, задайте родительский элемент. Для окна верхнего уровня задайте значение NULL.
  • Для окна приложения следующий параметр определяет меню для окна. В этом примере не используется меню, поэтому значение равно null.
  • HINSTANCE — это обработчик экземпляра, описанный выше. (См. статью WinMain: точка входа приложения.)
  • Последний параметр является указателем на произвольные данные типа void *. Это значение можно использовать для передачи структуры данных в оконную процедуру. Мы покажем один из возможных способов использования этого параметра в разделе Управление состоянием приложения.

CreateWindowEx возвращает маркер в новое окно или нуль, если функция завершается ошибкой. Чтобы отобразить окно, т. е. сделать окно видимым, передайте в функцию ShowWindow маркер окна:

Параметр HWND — это дескриптор окна, возвращаемый функцией CreateWindowEx. Параметр нкмдшов можно использовать для сворачивания или разворачивания окна. Операционная система передает это значение в программу с помощью функции wWinMain .

Ниже приведен полный код для создания окна. Помните, что WindowProc все еще является прямым объявлением функции.

Как создать новое окно в Electron?

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

Server code (app.js)


Server code (routes.js)


И вот такой код имеет электронное приложение

Electron App (main.js)


Electron App (index.html)


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

Но как двигаться дальше? На этом я просто застрял. В целом тут два варианта:
1)Переадресация на другую html страницу, либо что мне кажется более логичным
2)Закрытие текущего окна после успешной авторизации и открытие нового с другой html страницей, при этом должна остаться сессия.
Подскажите как это реализовать, буду безмерно благодарен вам за помощь!!

Читайте также: