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 МБ.

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