Tek bir yatay siyah çizgiden oluşan bir pencere öğesi oluşturmaya çalışıyorum. Bu widget QGridLayout içine yerleştirilecek, böylece tüm satırın yerini alacak, böylelikle bir ayırıcı gibi davranacaktır. Düzenin yüklü olduğu pencere öğesi yeniden boyutlandırıldığında, çizginin devam etmesi için boyutunu değiştirmesini istiyorum. QLine, QGraphicsView ve QImage dahil olmak üzere bir dizi seçeneği kontrol ettim, ancak çizilen çizgiyi elde edemiyorum, yeniden boyutlandırmak için aldırmadım.QWidget üzerinde çizgi çizme
Bunu kendi sınıfında uygularım, böylece gerektiğinde ve gerektiği zaman yeniden kullanabilirim. Bununla ilgili biri bana yardım edebilir mi? Bu durumda
#include "startMenuSectionFooter.h"
#include <QtGui>
StartMenuSectionFooter::StartMenuSectionFooter(QWidget *parent)
: QWidget(parent)
{
layout = new QHBoxLayout(this);
}
void StartMenuSectionFooter::paintEvent(QPainEvent *e)
{
QPointF p1 = QPointF(parentWidget()->height(), 0);
QPointF p2 = QPointF(parentWidget()->height(), parentWidget()->width());
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, 10));
painter.drawLine(p1, p2);
}
,
parent
önce belirtildiği
QGridLayout
kurulu olduğu ebeveyn
QWidget
olduğunu.
#ifndef START_MENU_SECTION_FOOTER_H
#define START_MENU_SECTION_FOOTER_H
#include <QWidget>
class QHBoxLayout;
class QPainEvent;
class StartMenuSectionFooter : public QWidget
{
Q_OBJECT
QBHoxLayout *layout;
void paintEvent(QPainEvent *e);
public:
StartMenuSectionFooter(QWidget *parent = NULL);
};
#endif
Bize şu ana kadar neye benzediğini gösteren bir ekran görüntüsünü gösterebilir misiniz? AFAIK, bir widget'ın bir QGridLayout'ta birden fazla konum alabileceğini sanmıyorum, daha iyi bir yaklaşım yatay bir çizgi yapmak ve her bir sütuna koymak olabilir (aynı satır) – eqzx
Çerçeveyle bir QFrame kullanmayı denediniz mi? şekil HLine olarak ayarlanmış mı? –
@RA, tam da aradığım şey buydu, teşekkürler :) Cevap olarak yazarsak, devam edip kabul edeceğim. –