पर एक रेखा खींचना मैं एक विजेट बनाने का प्रयास कर रहा हूं जिसमें एक क्षैतिज काला रेखा शामिल है। यह विजेट एक 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
माता पिता QWidget
जिस पर QGridLayout
पहले उल्लेख किया है स्थापित है।
#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, कि मैं के लिए, धन्यवाद वास्तव में क्या देख रहा था है :) आप इसे में लिखना एक जवाब के रूप हैं, तो मैं आगे जाना है और स्वीकार करेंगे। –