В этой статье речь пойдёт о том, как убрать заголовок окна. Это её первая цель. Побочно убираем ещё тень и границы, которые рисует всё тот же декоратор.
Приступим. Создадим простой hello world в Qt Creator. C этим проблем быть не должно да и писал я уже об этом не однократно.
При создании сгенерируйте простое MainWindow окно, как предлагает creator.
Готово? Отлично. Идём дальше.
Идём в mainwindow.cpp (ну или как у вас там) находим конструктор. У меня он выглядит вот так:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); }
Это было по умолчанию. Т.е. если сейчас откомпилировать будет обычное окно с заголовком и прочей белибердой.
Нам нужно всеголишь изменить флаги создаваемого окна.
Для этого воспользуемся методом setWindowFlags().
Делаем так:
this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnBottomHint);
Этой строкой, которую нужно вставить в конструктор класса мы указываем, что не хотим, чтобы системный декоратор работал с нашим окном Qt::FramelessWindowHint и задаём позицию окна под всеми окнами. То есть оно никогда не будет сверху над другими.
Таких флагов вагон и маленькая тележка. Поэтому можно дотошно отредактировать любые свойства окна, включая флаги посредством побитового или.
Список всех флагом можно посмотреть тут.