カスタム ウィジェットを作成しました: デザイナーでQWidget
a をTreeItem
(自分の) に昇格させました。しかし、コードを実行すると、ウィジェットが表示されません。それを見る唯一の方法は、 を使用することsetFixedSize(100, 100)
です。でもresize
、setGeometry
動作しません。固定サイズを指定せずにカスタム ウィジェットを表示できるようにしたいと考えています。
TreeItem.h
#ifndef TREEITEM_H
#define TREEITEM_H
#include <QWidget>
#include <QRect>
class TreeItem : public QWidget
{
Q_OBJECT
public:
explicit TreeItem(QRect rect, QWidget *parent = nullptr);
virtual void paintEvent(QPaintEvent*);
signals:
public slots:
protected:
QRect m_rect;
QFont m_font;
};
#endif // TREEITEM_H
TreeItem.cpp
#include "treeitem.h"
TreeItem::TreeItem(QRect rect, QWidget *parent): QWidget(parent)
{
m_rect = rect;
m_font = QFont("Arrial", 20);
setFixedSize(100, 100); // doesn't show up without this line
}
void TreeItem::paintEvent(QPaintEvent*)
{
QPainter painter(this);
painter.drawLine(0, 0, 100, 100);
}