Russian Qt Forum
Май 05, 2024, 02:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 2 [3] 4 5 6
31  Qt / Пользовательский интерфейс (GUI) / Re: Как запретить закрытие окон под Astra Linux : Апрель 25, 2019, 12:15
А заголовка главного окна и так нет, меню присутствует в иконке окна из панели инструментов. Окон много и некоторые должны иметь заголовки. Идея убрать системные заголовки и написать свои тоже была, но поскольку это не решает проблемы меню из панели инструментов, пока отложена.
32  Qt / Пользовательский интерфейс (GUI) / Re: Как запретить закрытие окон под Astra Linux : Апрель 25, 2019, 11:40
Да CloseEvent и так заблокирован, а перемещение почти тоже - см. выше. А вот соседствующие в меню пункты Закрыть окно и Убить приложение - это жесть. Конечно, последнее с подверждением, но все мы знаем, как на автомате жмется OK.
Звук в свое время тоже был опробован, специфика не позволила использовать.
33  Qt / Пользовательский интерфейс (GUI) / Re: Как запретить закрытие окон под Astra Linux : Апрель 25, 2019, 11:27
PS
To Old.
Техпроцессом управляют совсем другие вычислительные средства, эти машины АРМ - только GUI.
34  Qt / Пользовательский интерфейс (GUI) / Re: Как запретить закрытие окон под Astra Linux : Апрель 25, 2019, 11:23
Мы же не на облаке живем, на разработку нового правильного ПО никто денег не даст, тем более что все и так работает. Да и дело не в надежности самого ПО, все строировано и зарезервировано. Дело в том, что при случайном закрытии пользовательского интерфейса оператор может проморгать важное событие. Прокурор-то его потом в архиве найдет :-). Так что возможность ошибки оператора должна быть сведена к минимуму. Речь идет именно об ошибке, целенаправленные действия не рассматриваем.
Кстати, по Ctrl-Alt-Esc ничего не происходит - сейчас проверил.
35  Qt / Пользовательский интерфейс (GUI) / Re: Как запретить закрытие окон под Astra Linux : Апрель 25, 2019, 10:55
Попробую объяснить, что и для чего. Есть самописная SCADA система 1999-го года рождения. Технологический процесс неважен. Все в ней работает как надо, что много раз проверено. Вот только весь пользовательский интерфейс рабочих мест операторов сделан под Windows (сначала NT 4.0, потом XP, потом Windows 7). Теперь у нас импортозамещение и в список разрешенных ОС Windows больше не входит (а ведь NT 4.0 когда-то входила), а вот Astra Linux SE входит. И показалось, что она наиболее вменяемая, так что надо портировать. Ошибки оператора могут стоить ну очень дорого. Отсюда и весь наезд.
36  Qt / Пользовательский интерфейс (GUI) / Re: Как запретить закрытие окон под Astra Linux : Апрель 24, 2019, 16:23
В Винде надо еще добраться до taskkill, а Ctrl-Alt-Del (и многое другое) можно ведь и запретить, а тут SIGKILL в системном меню прямо рядом с пунктом закрытия окна.
37  Qt / Пользовательский интерфейс (GUI) / Re: Как запретить закрытие окон под Astra Linux : Апрель 24, 2019, 15:47
Собственно так сейчас все и сделано - closeevent игнорируется, на move посажен свой обработчик. Засада в том, что moveevent происходит только в начале и конце перемещения окна (и то уже после перемещения), так что окно все-таки перемещается и если не завершать процесс перемещения, окно может быть оставлено где угодно (почти). Qt::Tool и так есть и прекрасно работает под Windows, но вот Астре он пофигу. Ну и самый криминал - возможность посылки SIGKILL. Похоже, надо будет все-таки решать проблему работы без wm.

38  Qt / Пользовательский интерфейс (GUI) / Re: Как запретить закрытие окон под Astra Linux : Апрель 24, 2019, 15:16
Приложение отображает мнемосхемы технологического процесса. Убив приложение оператор может пропустить много важного и не выполнить вовремя то, что положено. От wm врядли можно избавиться (хотя такая идея и приходила мне в голову, а другая бредовая идея была попробовать OpenGl :-) - но тут я не специалист), так как в перспективе переход на SE версию.
39  Qt / Пользовательский интерфейс (GUI) / Как запретить закрытие окон под Astra Linux : Апрель 24, 2019, 10:53
На форуме Astra Linux мне не ответили, так что попробую спросить здесь.
Портирую несколько приложений с Windows 7 Qt 5.7 на Astra Linux (пока CE) Qt 5.11. Требуется полностью запретить пользователю закрывать и перемещать некоторые окна (не имеющие X или заголовка), а также запретить завершение приложений. Желательно вообще убрать системное меню и иконки из панели задач. Это ж надо было догадаться дать даже нерутовоному пользователю возможность грохнуть свое приложение из практически пользовательского интерфейса! И это ОС, разрешенная МО РФ! Сейчас под Windows все это делается платформенно зависимым способом. Как я понимаю, всё это надо делать через API fly-wm, а не через X11, или я ошибаюсь? Просьба подсказать, как это реализовать.
40  Qt / Общие вопросы / Re: настройка HIDAPI : Апрель 28, 2018, 09:47
Можно готовую сборку с отладочными печатями, можно всю среду разработки.
41  Qt / Общие вопросы / Re: настройка HIDAPI : Апрель 26, 2018, 15:28
А если запустить от имени администратора? Ежели удачно, то потом можно и соответствующий манифест встраивать.
42  Qt / Пользовательский интерфейс (GUI) / Re: QPushButton - подсветка при наведении, Не работает в винде : Февраль 09, 2018, 13:25
Есть тут некоторое преувеличение. У меня Qt 5.7.0 + MS VS2015 под XP работает, а у коллеги и gcc также работает. Все x86. Кое-где есть проблемы с установкой vcredist 2015, но это совсем другая история (C).
43  Qt / Пользовательский интерфейс (GUI) / Re: Программное закрытие редактора делегата : Февраль 09, 2018, 13:12
[virtual protected slot] void QAbstractItemView::closeEditor(...) - не оно?
44  Qt / Пользовательский интерфейс (GUI) / QLinearGradient в StyleSheet не обрабатывает RGB цвета : Июль 04, 2017, 10:53
Собственно, сабж. MSVC 2015 QT 5.7.0.
Для проверки написал простенькую программу:
Код:
#include <QApplication>
#include <QPushButton>
#include <QStyle>
#include <QStyleFactory>

int main( int argc, char *argv[] )
{
QApplication a( argc, argv );

QPushButton btn( "aaa" );
btn.setMinimumSize( 20, 20 );
btn.resize( 200, 40 );

btn.setStyle( QStyleFactory::create( "Fusion ") );

//// #1
//btn.setStyleSheet( "QPushButton {\n"
//    "background-color: QLinearGradient( x1: 0.0, y1: 0.0, x2: 1.0, y2: 0.0, stop: 0.0 #008000, stop: 1.0 #ffff00 );\n"
//"}\n" );

// #2
btn.setStyleSheet( "QPushButton {\n"
    "background-color: QLinearGradient( x1: 0.0, y1: 0.0, x2: 1.0, y2: 0.0, stop: 0.0 red, stop: 1.0 yellow );\n"
"}\n" );

//// #3
//btn.setStyleSheet( "QPushButton {\n"
//    "background-color: QLinearGradient( x1: 0.0, y1: 0.0, x2: 1.0, y2: 0.0, stop: 0.0 rgb( 255, 0, 0 ), stop: 1.0 rgb( 255, 255, 0 ) );\n"
//"}\n" );

btn.show();

return a.exec();
}
Варианты 1 и 2 красят кнопку как надо, вариант 3 кнопку не красит. Bug или я ошибаюсь в синтаксисе?
45  Qt / Общие вопросы / Re: Обфускация строк бинарника : Октябрь 21, 2016, 11:41
У меня сделано просто (в VS2008, но идея понятна), строковые константы вынесены в файл asm, где видны в читаемом виде:
Код:
.686
.model flat, C

DefXorSym EQU 71h

_STR    MACRO   string, xorSym
        IRPC    _x0,string
        DB    '&_x0' XOR xorSym
        ENDM
        DB    xorSym
        ENDM
 
PUBLIC regKey
PUBLIC regSubKey1
PUBLIC regSubKey2

.stack

.data

regKey LABEL BYTE
  _STR <Software\Microsoft\Windows\CurrentVersion\Policies\System>, DefXorSym
regSubKey1 LABEL BYTE
  _STR <DisableTaskMgr>, DefXorSym
regSubKey2 LABEL BYTE
  _STR <DisableRegistryTools>, DefXorSym

end
В файле cpp объявлено:
Код:
extern "C" char regKey[];
extern "C" char regSubKey1[];
extern "C" char regSubKey2[];
const unsigned long uXor = 0x71;
}
Функция декодирования примитивна: идти по массиву и xor'ить, пока не получим нулевой байт.
Допилить до Qt-овых особенностей уже нетрудно  Улыбающийся.
Страниц: 1 2 [3] 4 5 6

Страница сгенерирована за 0.05 секунд. Запросов: 23.