IscanderCheМаусым 29, 2019, 5:07 Т.Қ.
Как избавиться от расстояния между виджетами
Вроде всё перепробовал, а не получается избавиться от расстояния между paintwidget-ами...
// widget.h #ifndef WIDGET_H #define WIDGET_H #include <QWidget> class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = 0); ~Widget(); }; #endif // WIDGET_H // widget.cpp #include "widget.h" #include "paintwidget.h" #include <QVBoxLayout> #include <QHBoxLayout> Widget::Widget(QWidget *parent) : QWidget(parent) { PaintWidget* paintWidget1 = new PaintWidget(parent); PaintWidget* paintWidget2 = new PaintWidget(parent); QVBoxLayout* layoutV = new QVBoxLayout; layoutV->addWidget(paintWidget1); layoutV->addWidget(paintWidget2); setLayout(layoutV); } Widget::~Widget() { } // paintwidget.h #ifndef PAINTWIDGET_H #define PAINTWIDGET_H #include <QWidget> class PaintWidget : public QWidget { Q_OBJECT public: explicit PaintWidget(QWidget *parent = 0); protected: void paintEvent(QPaintEvent*); private: int rectPhotoX; int rectPhotoY; int rectPhotoWidth; int rectPhotoHeight; }; #endif // PAINTWIDGET_H // paintwidget.cpp #include "paintwidget.h" #include <QPainter> PaintWidget::PaintWidget(QWidget *parent) :QWidget(parent), rectPhotoX(0), rectPhotoY(0), rectPhotoWidth(110), rectPhotoHeight(110) { setMinimumWidth(rectPhotoWidth); setMinimumHeight(rectPhotoHeight); QRect rect(rectPhotoX, rectPhotoY, rectPhotoWidth, rectPhotoHeight); setGeometry(rect); } void PaintWidget::paintEvent(QPaintEvent*) { QPainter painter(this); int rectPhotoRadius = 5; QRect rect(rectPhotoX, rectPhotoY, rectPhotoWidth, rectPhotoHeight); painter.setClipRect(rect); QBrush brush(Qt::white, Qt::SolidPattern); painter.fillRect(rect, brush); QImage img(":/images/DSC_0024.jpg"); painter.setRenderHint(QPainter::Antialiasing, true); painter.setBrush(QBrush(Qt::white)); painter.setPen(QPen(Qt::black, 1, Qt::DotLine)); QRect rectPhoto(rectPhotoX, rectPhotoY, rectPhotoWidth, rectPhotoHeight); painter.drawRoundedRect(rectPhoto, rectPhotoRadius, rectPhotoRadius); int minimumOffset = 10; int maximumWidthPhotoView = rectPhotoWidth - minimumOffset * 2; int maximumHeightPhotoView = rectPhotoHeight - minimumOffset * 2; int coefficientWidth = img.width() / maximumWidthPhotoView; int coefficientHeight = img.height() / maximumHeightPhotoView; int coefficient = 0; if(coefficientWidth > coefficientHeight) coefficient = coefficientWidth; else coefficient = coefficientHeight; int realWidthPhotoView = img.width() / coefficient; int realHeightPhotoView = img.height() / coefficient; int offsetX = (rectPhotoWidth - realWidthPhotoView) / 2; int offsetY = (rectPhotoHeight - realHeightPhotoView) / 2; int photoViewX = rectPhotoX + offsetX; int photoViewY = rectPhotoY + offsetY; QImage img2 = img.scaled(realWidthPhotoView, realHeightPhotoView); painter.drawImage(photoViewX, photoViewY, img2); }
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
Г
- Геній
- Қыр. 13, 2024, 12:46 Т.Қ.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:66ұпай,
- Бағалау ұпайлары-1
t
- torgaev_2024
- Қыр. 8, 2024, 6:20 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:33ұпай,
- Бағалау ұпайлары-10
Соңғы пікірлер
Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
ВР
Linux жүйесінде файлдарды қалай көшіруге болады Screenshot_20240802-065123.png
Влад РусоковТам. 2, 2024, 1:47 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
Енді форумда талқылаңыз
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
BlinCTМаусым 25, 2024, 1 Т.Ж.
BlinCTМамыр 5, 2024, 5:46 Т.Ж.
Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
Получилось так: