Qt/C++ создает современный виджет темной темыC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Qt/C++ создает современный виджет темной темы

Сообщение Гость »


Я несколько часов пытался получить темную тему QDialog. Сначала идея заключалась в том, чтобы просто покрасить строку заголовка Windows в черный цвет, но после поиска в Google я обнаружил, что мне придется полностью изобретать велосипед, поэтому я установил этот флаг:

setWindowFlags(Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground); Теперь мне пришлось:
[*]создать собственную строку заголовка с заголовком и кнопками «Свернуть», «Развернуть» и «Закрыть». [*]изменить размер диалога [*]скруглить углы [*]сделать диалог перетаскиваемым
Я сделал много вещей, но все еще не так, как мне хотелось.. Я реализовал закругленные края следующим образом:

void DialogTemplate::paintEvent(событие QPaintEvent*) { Q_UNUSED (событие); Художник QPainter(это); Painter.setRenderHint(QPainter::Сглаживание); Painter.fillRect(rect(), Qt::transparent); // Рисуем закругленные края Путь QPainterPath; path.addRoundedRect(rect().adjusted(5, 5, -5, -5), 10, 10); // Стиль диалога для QPainterPath QStyleOption опция; opt.initFrom(это); художник.setClipPath(путь); style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this); // заливаем фоновый цвет строки заголовка черным QRect titleBarRect(0, 0, ширина(), высота()); Painter.fillRect(titleBarRect, Qt::black); // Zeichnen Sie den Dialoginhalt QDialog::paintEvent(событие); } [*]для изменения размера я использовал этот код: Qt/Windows, безрамочное окно с изменяемым размером. Теперь можно изменить размер диалогового окна, но область, в которой я могу изменить размер окна, мала, особенно на окрашенных краях моего диалогового окна, я не могу захватить угол, чтобы правильно изменить размер ширины и высоты окна.
[*]
При развертывании диалога он на самом деле не разворачивается, между диалогом и концом монитора все еще остается зазор, и я не понимаю, почему это происходит..
[*]
Моим последним желанием было бы, чтобы и в окне, оформленном в стиле Windows по умолчанию, кнопка выхода находилась в закругленном углу. Не знаю, как мне это сделать.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Переключение темной/светлой темы в html
    Anonymous » » в форуме CSS
    0 Ответы
    60 Просмотры
    Последнее сообщение Anonymous
  • Неправильные виджеты приложений тематические после ручного переключения темной темы в Android
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как сделать элементы поддержки режима темной/легкой темы?
    Anonymous » » в форуме Html
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как сделать элементы поддержки режима темной/легкой темы?
    Anonymous » » в форуме CSS
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Создание темной фоновой темы в Android
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»