QT开发中文网

qt如何实现可以左右滑动的缩略图?

在Qt中实现可左右滑动的缩略图,可以使用QGraphicsView和QGraphicsScene来创建一个可滚动的视图区域。以下是一个简单的示例代码:

#include <QtWidgets>

class ThumbnailWidget : public QGraphicsWidget
{
public:
    ThumbnailWidget(const QPixmap& pixmap, QGraphicsItem* parent = nullptr)
        : QGraphicsWidget(parent), m_pixmap(pixmap)
    {
        setMinimumSize(100, 100);
    }

protected:
    void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override
    {
        Q_UNUSED(option)
        Q_UNUSED(widget)

        painter->drawPixmap(contentsRect(), m_pixmap);
    }

private:
    QPixmap m_pixmap;
};

int main(int argc, char** argv)
{
    QApplication app(argc, argv);

    QGraphicsScene scene;
    QGraphicsView view(&scene);
    
    // 设置水平滚动条策略为自动显示
    view.setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);

    for (int i = 0; i < 10; ++i)
    {
        QPixmap thumbnail(QString("image_%1.png").arg(i));
        auto widget = new ThumbnailWidget(thumbnail);
        
        // 在场景中添加缩略图小部件
        scene.addItem(widget);
        
        // 设置小部件位置
        widget->setPos(i * 110, 0);
        
        // 将小部件调整为适应视图大小
        widget->setParent(view.viewport());
     }

     view.resize(800, 120);
     view.show();

     return app.exec();
}

这个示例代码中创建了一个带有缩略图的QGraphicsWidget,并通过QGraphicsScene和QGraphicsView来展示。将小部件添加到场景中,并设置其位置和大小,然后将小部件的父项设置为视图的viewport以实现滑动效果。水平滚动条策略设置为自动显示。

请根据需要自行调整代码并添加更多功能。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=4516

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?