하나의 수평 검은 선으로 구성된 위젯을 만들려고합니다. 이 위젯은 QGridLayout에 배치되어 전체 행을 차지하므로 구분 기호로 사용됩니다. 레이아웃이 설치되는 위젯의 크기가 조정되면, 라인이 계속 변경되도록 크기를 변경하고 싶습니다. QLine, QGraphicsView 및 QImage를 포함하여 여러 가지 옵션을 확인했지만 줄을 그릴 수는 없지만 크기를 조정할 필요는 없습니다.QWidget에 선 그리기
저는 이것을 자체 클래스로 구현하고 있으므로 필요할 때 다시 사용할 수 있습니다. 아무도 이것으로 나를 도울 수 있습니까? 이 경우
#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
앞서 언급
QGridLayout
설치된 따라 부모
QWidget
이다.
#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
지금까지 보이는 화면을 보여줄 수 있습니까? AFAIK, 나는 위젯이 QGridLayout에서 여러 위치를 차지할 수 있다고 생각하지 않는다. 더 나은 접근법은 수평선을 만들어 각 열 (동일한 행)에 넣는 것이다. – eqzx
프레임과 함께 QFrame을 사용해 보았는가? 모양을 HLine으로 설정 했습니까? –
@RA, 정확히 내가 뭘 찾고 있었는지, 고마워. :) 답장으로 쓰면 나는 계속해서 받아 들일 것이다. –