c++ - QGraphicsView 周围的自定义边框

标签 c++ qt border qgraphicsview

我有这张图片: enter image description here

我希望我的 GraphicsView 的边框与这张图片完全一样。

(考虑下面的图像,我希望顶部的白色矩形变成那个形状)enter image description here

我从 QGraphicsView 继承了一个类,并尝试在 drawBackgroundpaintEvent 中绘制此图像,但它们都不起作用。

我的代码:

.h文件

class GraphicsTraxSuggestionView : public QGraphicsView {
    Q_OBJECT
public:
    GraphicsTraxSuggestionView(QWidget* widget);

protected:
//  void paintEvent(QPaintEvent *event);
    void drawBackground(QPainter *p, const QRectF &rect);
private:

}; 

.cpp 文件

GraphicsTraxSuggestionView::GraphicsTraxSuggestionView(QWidget* widget)
    : QGraphicsView(widget)
{
    //setFrameShadow(QFrame::Raised);
    setFrameStyle(QFrame::NoFrame);
    setStyleSheet("QGraphicsView { border-style: none; }");
}
void GraphicsTraxSuggestionView::drawBackground(QPainter *painter, const QRectF &rect)
{
    painter->drawImage(rect, QImage("suggestionBorder.png"));
}

我的代码的结果:http://i.stack.imgur.com/r0waP.png

有什么建议吗?

最佳答案

1) 创建一个QGraphicsScene 有你的图片大小

2) 将其设置为 View 的场景

3) 像现在一样在drawBackground 中绘制

关于c++ - QGraphicsView 周围的自定义边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35940783/

相关文章:

C++ cout 腐败

c++ - 从 QDateTime 到正确的 json

qt - 在嵌入式设备上获取 QSslError::CertificateNotYetValid?

java - JList:如何获取 LineBorder "between"单元格?

android - 带 child 的自定义 Android 控件

html - 如何显示不规则重复但相同的图像,以便它们的边框在行之间对齐?

c++ - 为什么我必须把这个函数静态化

c++ - 如何在 LLVM pass 中添加一行新代码?

c++ - QLineEdit:将光标位置设置为焦点开始

qt - 一个非常简单的Qt程序的轻量级发布