QStatusBarのようにQMLのStatusBarタイプにSizeGripが含まれていないことに気付きました。QML StatusBar with SizeGrip
サイズグリップを得るために、代わりにQStatusBarを使用してQMainWindowにQMLを埋め込む必要がありました。これは動作しますが、それはアプリケーションの残りの部分を複雑にし、実際に私が後にしているデザインではありません。
QStatusBarをサブクラス化することでQStatusBarを直接実装することはできますか?QMLはどのようにしてSizeGripを認識/使用できますか?
編集:私は試してみて、QMLでQStatusBarをレンダリングするQQuickPaintedItemを導出しようとしましたが、これまでの任意の運を持っていなかった 。 QCoreApplication :: sendEventのASSERTエラー: "別のスレッドが所有するオブジェクトにイベントを送信できません。現在のスレッド399d3d8。( 'QStatusBar'タイプの)受信者 'がスレッド8c9f00で作成されました。 、ファイルのカーネル\ qcoreapplication.cpp、ライン553
の.h
class WindowStatusBar : public QQuickPaintedItem
{
Q_OBJECT
public:
explicit WindowStatusBar(QQuickItem *parent = 0);
virtual ~WindowStatusBar();
void paint(QPainter *painter);
protected:
QStatusBar *statusBar_;
};
た.cpp
WindowStatusBar::WindowStatusBar(QQuickItem *parent)
: QQuickPaintedItem(parent)
, statusBar_(NULL)
{
setOpaquePainting(true);
setAcceptHoverEvents(true);
setAcceptedMouseButtons(Qt::AllButtons);
statusBar_ = new QStatusBar;
}
WindowStatusBar::~WindowStatusBar()
{
delete statusBar_;
}
void WindowStatusBar::paint(QPainter *painter)
{
statusBar_->render(painter, QPoint(), QRegion(),
QStatusBar::DrawWindowBackground | QStatusBar::DrawChildren);
}
QML QStatusBarを作成する際の私の現在の試みで質問を更新しました。これは主に、ウィンドウのQSizeGripの代わりにMouseAreaを使用することで、ウィンドウのサイズ変更がほぼスムーズではないことがわかっていたため、私が注目していたパスです。 –