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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 25 26 [27]
391  Qt / Общие вопросы / Android скриншоты : Марта 10, 2020, 22:22
Доброго времени суток!
Понадобилось делать скриншоты с экрана смартфона с целью анализировать их на компьютере.
Не проблема: с помощью QProcess и кода
Код:
adb exec-out screencap -p
получаю скриншот, всё ОК.
Но вот беда - на 1 снимок уходит больше 2 секунд. А хотелось бы хотя бы 4 кадра в секунду.
Как это можно сделать?
Телефон не рутованный, ставить какие-то дополнительные программы на него не хотелось бы.
392  Qt / Общие вопросы / Re: Qt и clang : Марта 09, 2020, 20:33
тогда или так (QMAKE_C[XX]FLAGS) или дописать дополнительные фигурные скобки
Дописал 100500 фигурных скобок.
393  Qt / Общие вопросы / Re: Qt и clang : Марта 09, 2020, 16:09
Ага. Т.е. предлагается "забить"? Ибо это "нинужно" истинным ценителям кода?
Не. Должно быть решение...
394  Qt / Общие вопросы / Re: Qt и clang : Марта 09, 2020, 15:51
разве что стандартные опции предупреждений в настройках Креатора подправить
Это не очень решение. Если вдруг надо кому то передать проект, то нужно будет или README на эту тему писать или выслушивать жалобы на "а что у тебя тут 100500 предупреждений. Говнокодс..."
Пока вижу (как временное решение) написать программу, которая просто разберёт такой массив и иницализирует уже обычным методом. Да - код будет длиннее и запустаннее...
Может всё-таки есть какое-то элегантное решение?
395  Qt / Общие вопросы / Qt и clang : Марта 09, 2020, 14:38
Доброго времени суток!
Есть проект, в котором встречается инициализация такого:
Код:
    typedef struct tagRS_BLOCKINFO
    {
        int ncRSBlock;
        int ncAllCodeWord;
        int ncDataCodeWord;

    } RS_BLOCKINFO;

    typedef struct tagQR_VERSIONINFO
    {
        int nVersionNo;
        int ncAllCodeWord;

        int ncDataCodeWord[4];

        int ncAlignPoint;
        int nAlignPoint[6];

        RS_BLOCKINFO RS_BlockInfo1[4];
        RS_BLOCKINFO RS_BlockInfo2[4];

    } QR_VERSIONINFO;

    static QR_VERSIONINFO QR_VersonInfo[] = {
        {
            0
        },
        {
            1, // Ver.1
            26,   19,   16,   13,    9,
            0,   0,   0,   0,   0,   0,   0,
            1,  26,  19,
            1,  26,  16,
            1,  26,  13,
            1,  26,   9,
            0,   0,   0,
            0,   0,   0,
            0,   0,   0,
            0,   0,   0
        }
    };
Если собирать это с помощью gcc, то всё нормально.
Но, если попробовать собрать с помощью clang, то будет куча предупреждений, типа "suggest braces around initialization of subobject"
Понятно, что можно бороться с этим, с помощью опций компилятора, но это как-то неправильно. Как мне кажется.
Как с таким правильно бороться? Может можно что дописать в .pro файл?
396  Qt / Общие вопросы / Re: Qt: преобразованные виджеты : Марта 08, 2020, 15:17
это невозможно: достаточно просто взглянуть на сгененрированный код в ui_mainwindow.h. Самым простым решением будет вызвать функцию из MyClass::MyClass() по таймеру с нулевой задержкой:
Код
C++ (Qt)
   QTimer::singleShot(0, [this]{
       qDebug() << objectName();
   });
Хитро! Но работает.
Спасибо!
397  Qt / Общие вопросы / Re: Qt: преобразованные виджеты : Марта 07, 2020, 20:28
Не вопрос.
Вот "на коленке" набросал проект. Фактически то, что я описывал в начале темы.
Может быть, я хочу чего-то принципиально невозможного, но я хочу увидеть в консоли "my_widget", а не "MyClass".
398  Qt / Общие вопросы / Re: Qt: преобразованные виджеты : Марта 06, 2020, 22:04
Нет. "objectName" - обычная пропердь, у экземпляра созданного дызайнером она будет = "Вася", у других пустая строка по умолчанию (или то что им установили)
Вы можете ведь сами проверить - будет не так. Изнутри класса objectName будет одним, а в редакторе - другим.
Я в начале тоже думал, что они должны быть одинаковыми - однако реальность показывает другое.
P.S. Я, конечно, могу допустить, что в винде всё может быть по-другому. Но меня больше интересуют linux и macos
399  Qt / Общие вопросы / Re: Qt: преобразованные виджеты : Марта 05, 2020, 18:44
Так он и назначается "снаружи" (а не в коде класса) - см код создаваемый дызайнером
Ну так я и спрашиваю, как именно его увидеть изнутри класса? Я и так знаю, что он создается "дызайнером". Улыбающийся
400  Qt / Общие вопросы / Re: Qt: преобразованные виджеты : Марта 04, 2020, 15:23
Сделайте методы QByteArray saveState()/void restoreState(const QByteArray &state) в MyClass. В простом случае можно сделать геттер\сеттер для спинбокса.

А потом проходите по всем MyClass (или конкретному):
Код:
for (auto *child : findChildren<MyClass>()) {
    // получили стейт
    auto state = child->saveState();
    // сохраняем куда-то (в мапу сеттингзы или еще куда)
    map[child->objectName()] = state;
}
Проблема в подобном решении в том, что я в КАЖДОМ классе, использующем MyClass буду вынужден вызывать эти самые saveState/restoreState. И стОит где-то это забыть и всё...
Хотелось бы как то изнутри MyClass это делать. Один раз написать и забыть. И если бы знать ИЗНУТРИ класса, назначенный ему СНАРУЖИ objectName - было бы просто замечательно.
401  Qt / Общие вопросы / Re: Qt: преобразованные виджеты : Марта 04, 2020, 15:08
Вопрос: могу ли я как то из класса MyClass увидеть этот самый my_widget? Без использования редактора, просто из кода.
Строго говоря - нет. Код создается для класса экземпляров которого может быть сколько угодно. Отличить проще всего по имени, напр
Код
C++ (Qt)
void MyClass::DoSometrhing( .. )
{
 if (this->objectName() == "Вася")
  ..
}
 
Хотя это конечно коряво  Улыбающийся
Проблема только в том, что objectName будет у всех таких объектов одинаковый...
402  Qt / Общие вопросы / Re: Qt: преобразованные виджеты : Марта 04, 2020, 15:07
Допустим, в этом классе MyClass есть объект QSpinBox. И ещё 100500 визуальных компонентов.
Я на родительской форме размещаю десяток простых widget, которые затем преобразовываю в MyClass.
А теперь я хочу в родительском классе сохранить значения этих QSpinBox. Я могу пройтись по всем QSpinBox и сохранить их значения, всё хорошо. Но как их различить друг от друга - objectName то у всех одинаковый.
Если бы я знал objectName "контейнера", то я бы в самом классе сохранял/восстанавливал состояния своих визуальных объектов.
403  Qt / Общие вопросы / Re: Qt: преобразованные виджеты : Марта 04, 2020, 14:41
Код:
ui->my_widget
Не. Изнутри класса. К ui родительского объекта ведь так просто не доберёшься...
404  Qt / Общие вопросы / Qt: преобразованные виджеты : Марта 04, 2020, 14:35
Доброго времени суток!
1) Создал свой класс MyClass.
2) Создал форму
3) На форму добавил виджет
4) Преобразовал добавленный виджет в MyClass
5) Задал ему objeсtName в дизайнере, допустим my_widget
Вопрос: могу ли я как то из класса MyClass увидеть этот самый my_widget? Без использования редактора, просто из кода.
Страниц: 1 ... 25 26 [27]

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