Ответы пользователя по тегу Qt
  • Как в PyQt разместить элемент сразу в нескольких вкладках?

    @poslannikD
    Java/C/C++ Programmer
    Сделать виджет который включает в себя GroupBox, TextLabel, QPushBtn, QCheckBox и так далее. И уже этот виджет размещать в разных окнах
    Ответ написан
    Комментировать
  • Вопрос по синтаксису Qt?

    @poslannikD
    Java/C/C++ Programmer
    Это вопрос по синтаксису с++ )
    QLabel *label = new QLabel("Привет");
    label-> show();

    давайте разберем построчно
    1) QLabel("Привет"); - создали экзепмляр класса QLabel
    2) new QLabel("Привет") - оператор new выделяет память в куче, размещает там объект
    QLabel("Привет")
    и возвращает указатель на адрес в куче. По этому адресу расположен наш объект
    3) = new QLabel("Привет"); - оператор = выполняет присваивание(или инициализацию в зависимости от контекста). Присваивание(инициализация) чего ? Присваивание(инициализация) правого операнда. Присваивание(инициализация) чему? Присваивание(инициализация) левому операнду.
    4) QLabel *label - объявили указатель, который может указывать на объекты класса QLabel.
    5) QLabel *label = new QLabel("Привет"); -читаем с Права на лево создали объект, разместили его в куче, адрес объекта передали указателю типа QLabel который расположен слева от знака =
    Я так понимаю что [*label] это указатель на адрес объектов которых в дальнейшем будет много наверное

    Это указатель на адресс ОБЪЕКТА, этот указатель в один момент времени указывает только на ОДИН объект. так как отсутствует ключевое слово const то, да он может указывать на разные объекты. Но в конкретный момент времени он указывает только на один объект или вникуда

    label-> show();
    - обращаемся к объекту через УКАЗАТЕЛЬ на этот объект

    SomeClass a; //тут создается объект на основе класса
    SomeClass *p = &a; //это указатель на адрес объекта чтобы через него // вызывать методы класса

    1) SomeClass a; - объект создается на СТЕКЕ, не рекомендуется создавать тяжеловесные объекты на стеке, а легковесные можно.
    2)SomeClass *p = &a; - указатель указывает на объект на стеке все норм :)

    Различие между
    SomeClass a;
    и
    new QLabel("Привет");
    в том что объект а существует на стеке, а QLabel("Привет"); в куче
    Ответ написан
    Комментировать
  • С чем связанно такое поведение программы?

    @poslannikD Автор вопроса
    Java/C/C++ Programmer
    В коде были глупые описки типа
    byte1 = new Button(ButtonType::ONLY_TEXT_BUTTON, this);
        byte1 = new Button(ButtonType::ONLY_TEXT_BUTTON, this);
        byte1 = new Button(ButtonType::ONLY_TEXT_BUTTON, this);
        byte1 = new Button(ButtonType::ONLY_TEXT_BUTTON, this);

    а надо было
    byte1 = new Button(ButtonType::ONLY_TEXT_BUTTON, this);
        byte2 = new Button(ButtonType::ONLY_TEXT_BUTTON, this);
        byte3 = new Button(ButtonType::ONLY_TEXT_BUTTON, this);
        byte4 = new Button(ButtonType::ONLY_TEXT_BUTTON, this);

    соответственно в корневой layout добавлялся указатель указывающий не на что :(
    + один слот не был объявлен и определен, но была попытка использовать к нему коннект
    После исправления всех глупых ошибок код заработал :(
    Ответ написан
  • Как запустить сборку проекта в QT Creator?

    @poslannikD
    Java/C/C++ Programmer
    Убедиться что правильно заданы каталоги с исходниками и каталог для сборки.
    Проверить что все этапы сборки проставлены как надо и qt видит компиляторы.
    Еще глянуть что проект который вы хотите скомпилить активен.
    Ответ написан