Closed slavakyrlan closed 1 year ago
@SUAI-TaskPlanner-Contest/project_template
Чтобы заблокировать окно приложения QML, когда открыто другое окно, можно воспользоваться свойством enabled
элемента Window.
Например, если у вас есть главное окно приложения и окно настроек, то можно создать свойство settingsOpen
в главном окне и установить его в true, когда окно настроек открыто.
Затем, в элементе Window главного окна установить enabled: !settingsOpen
, чтобы блокировать главное окно, когда окно настроек открыто:
Window {
id: mainWindow
// ...
enabled: !settingsOpen
// ...
}
Window {
id: settingsWindow
// ...
Component.onCompleted: {
// set the settingsOpen property to true when this window is opened
mainWindow.settingsOpen = true;
}
onClosed: {
// set the settingsOpen property to false when this window is closed
mainWindow.settingsOpen = false;
}
}
Таким образом, при открытии окна настроек свойство settingsOpen
устанавливается в true и главное окно блокируется. Когда окно настроек закрывается, свойство settingsOpen
устанавливается в false, и главное окно снова разблокируется.
Чтобы заблокировать окно приложения QML, когда открыто другое окно, можно воспользоваться свойством
enabled
элемента Window.Например, если у вас есть главное окно приложения и окно настроек, то можно создать свойство
settingsOpen
в главном окне и установить его в true, когда окно настроек открыто.Затем, в элементе Window главного окна установить
enabled: !settingsOpen
, чтобы блокировать главное окно, когда окно настроек открыто:Window { id: mainWindow // ... enabled: !settingsOpen // ... } Window { id: settingsWindow // ... Component.onCompleted: { // set the settingsOpen property to true when this window is opened mainWindow.settingsOpen = true; } onClosed: { // set the settingsOpen property to false when this window is closed mainWindow.settingsOpen = false; } }
Таким образом, при открытии окна настроек свойство
settingsOpen
устанавливается в true и главное окно блокируется. Когда окно настроек закрывается, свойствоsettingsOpen
устанавливается в false, и главное окно снова разблокируется.
👍
Чтобы создать выпадающий список с кнопками редактирования в QML, можно использовать компонент ComboBox
и настроить его элементы.
Вот пример кода, который создает ComboBox и заполняет его элементы. Также добавляются кнопки редактирования:
import QtQuick.Controls 2.15
ComboBox {
id: myComboBox
width: 150
model: [ "Option 1", "Option 2", "Option 3", "Option 4" ]
// Создаем кнопку "Добавить"
Button {
text: "Add"
onClicked: {
myComboBox.model.append("New Option")
}
}
// Создаем кнопку "Удалить"
Button {
text: "Remove"
onClicked: {
myComboBox.model.remove(myComboBox.currentIndex)
}
}
// Создаем кнопку "Изменить"
Button {
text: "Edit"
onClicked: {
myComboBox.model.set(myComboBox.currentIndex, "Edited Option")
}
}
}
В этом примере создается ComboBox с четырьмя опциями. Также добавляются кнопки "Добавить", "Удалить" и "Изменить" для управления элементами ComboBox.
Кнопка "Добавить" добавляет новый элемент в конец списка. Кнопка "Удалить" удаляет выбранный элемент из списка. Кнопка "Изменить" заменяет выбранный элемент на "Измененный вариант".
@slavakyrlan Чем обусловлен срок выполнения 2 недели на задачу, которая делается за несколько вечеров? Вам же нужно просто вызвать окна, а не наполнить их пока что
@astronik00 Это был указан максимальный срок, те методы, что я указал выше не работают, пока разбираемся каким способом можно заблокировать окно.
Окно с предупреждением, документация: MessageDialog
@slavakyrlan
Если не будет получаться - просите помощь или ищите альтернативы, как можно обойтись без этого. До 4 мая рассчитывать не стоит на эту задачу, иначе мы не успеем. Максимум - 28 апреля. Приоритетнее является задача по верстке главного окна.
@astronik00
Примерно такое окно с предупреждением?
@astronik00
Примерно такое окно с предупреждением?
То, что нужно
@astronik00 Добавил блокировку окна, если все так, отпиши в тг/вк, т.к. работаю, сюда захожу поздно @slavakyrlan Заходишь в Qt Creator, жмешь Справка, затем в самом низу ищешь Qt Quick, и там надо ковыряться Это табличка про модальность/блокировку
@ISAchainSAW ты мне пример не кинул, но по описанию вроде именно то
@astronik00 В смысле пример не кинул? Склонируй ветку и посмотри, или мне надо видео записывать?
@astronik00 В смысле пример не кинул? Склонируй ветку и посмотри, или мне надо видео записывать?
Предоставить результат своей работы, это обязанность того, кто эту работу делает. Если человеку, для того, чтобы посмотреть что ты сделал, нужно самому открывать ветку и что-то запускать, то это ты плохо предоставил результат работы. Плохо предоставленный результат, это немногим лучше его отсутствия. Иными словами: да, ты должен был записать видео как это работает. Включить OBS дело 10 секунд. И нужно обойтись без таких грубых и резких ответов. Такое недопустимо. Комментарий справедливый
@Lailes @astronik00
Очень интересно получается, что обращаюсь я к одному человеку, а отвечает мне другой с предъявой, что он обиделся. Обида это вещь субъективная. Если кто-то из вас увидел в моем сообщении что-то неприемлемое, то это проблема исключительно этого человека, но никак не моя. Такой подход общения говорит о многом, не говоря уже о выделении конкретных слов. Если вы не способны на банальную вежливость типа "Да, запиши видео", а в итоге вы высираете такое, то увы у вас большие проблемы. Если есть какие-то проблемы, то имейте духу подойти и сказать об этом в лицо, а не в онлайне, где все горазды.
P.S. Склонировать ветку и запустить проект, тоже, к слову,10 секунд.
@Lailes @astronik00
Очень интересно получается, что обращаюсь я к одному человеку, а отвечает мне другой с предъявой, что он обиделся. Обида это вещь субъективная. Если кто-то из вас увидел в моем сообщении что-то неприемлемое, то это проблема исключительно этого человека, но никак не моя. Такой подход общения говорит о многом, не говоря уже о выделении конкретных слов. Если вы не способны на банальную вежливость типа "Да, запиши видео", а в итоге вы высираете такое, то увы у вас большие проблемы. Если есть какие-то проблемы, то имейте духу подойти и сказать об этом в лицо, а не в онлайне, где все горазды. P.S. Склонировать ветку и запустить проект, тоже, к слову,10 секунд.
Никто не писал тебе с предьявой что кто-то обиделся, не надо видеть того, чего нет. Я лично посчитал тон твоего сообщения неприемлемым. И не удивляйся, что на твое сообщение ответили в такой же резкой манере. Интересно получается, что неприемлимое "высираешь" ты, а виноват читающий. Да и оказывается, что грубить можно тебе по отношению к другим, а вот вежливо просить должны тебя. Классная логика, ничего не скажешь. Мои выделения слов было к тому, что ты не понял то, что я рассказывал, когда я пояснял принципы командной работы. Если уж для тебя мне понадобилось их повторять третий раз, то не надо предъявлять за курсив. Тут речь идёт не о вежливости, а о профессионализме. Проверяющий вообще не обязан запускать твой код. Его дело посмотреть изменения на странице гитхаба. Ты должен показать как он работает, это касается задач с UI. Копирование ветки и открытие всего что нужно, это отнюдь не 10 секунд и у проверяющего есть свои дела
Требования: программист
Краткое описание
Добавление в программу 2 всплывающих окна (предупреждение, редактирование окна), которые будут открываться поверх окна и оставаться активными, пока пользователь не закроет их вручную. При этом неактивное окно должно оставаться под активным и заблокированным.
Функциональные требования или документация
Диаграмма переходов
Результаты
Код .py Файл .md с описанием
Срок выполнения
2 недели(4 мая)