QT开发中文网

右侧窗口作为巨型画布50000*1500支持超出主窗口区域可以鼠标移动窗口

要实现一个宽度为50000像素、高度为1500像素的右侧窗口,并允许用户通过鼠标移动它以便查看超出主窗口的部分,可以使用 QScrollArea 来创建一个可滚动的区域。下面是如何在 Qt 中实现这一点的代码示例:

#include <QApplication>
#include <QWidget>
#include <QHBoxLayout>
#include <QFrame>
#include <QScrollArea>

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

    // 创建主窗口
    QWidget mainWindow;
    mainWindow.setWindowTitle("显示窗口");
    mainWindow.resize(700, 1500); // 设置主窗口大小

    // 创建水平布局
    QHBoxLayout *layout = new QHBoxLayout(&mainWindow);
    layout->setContentsMargins(0, 0, 0, 0); // 设置布局边距为零
    layout->setSpacing(0); // 设置间距为零

    // 创建左边子窗口
    QFrame *leftFrame = new QFrame();
    leftFrame->setFixedWidth(200); // 左侧固定宽度
    leftFrame->setStyleSheet("background-color: green;");

    // 创建右边的巨型画布(作为框架)
    QFrame *canvasFrame = new QFrame();
    canvasFrame->setFixedSize(50000, 1500); // 巨型画布大小
    canvasFrame->setStyleSheet("background-color: black;");

    // 将画布放入滚动区域中
    QScrollArea *scrollArea = new QScrollArea();
    scrollArea->setWidget(canvasFrame);
    scrollArea->setWidgetResizable(true);  // 自适应尺寸
    scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); 
   
     // 将子窗口添加到布局中
     layout->addWidget(leftFrame);
     layout->addWidget(scrollArea);

     // 显示主窗口
     mainWindow.show();

     return app.exec();
}

更新说明:

  1. QScrollArea:用于创建一个可滚动区域,内部包含一个宽大的 QFrame 作为画布。
  2. canvasFrame:这个帧被设置为50000x1500的固定大小,代表你的巨大画布。
  3. 布局设置:将左侧绿色框和滚动区域添加到水平布局中。

功能说明:

  • 用户可以通过滚动条来查看超出主窗口范围的右侧内容。
  • 左侧保持固定,用户仍然可以看到它。

运行此代码后,你会看到一个包含绿色左侧面板和黑色巨型画布的界面,用户能够在应用程序中使用水平滚动条查看整个画布。


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

目录导航
  • 更新说明:
  • 功能说明:
  • 本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
    转载请注明出处:https://qt.0voice.com/?id=13071

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

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

    联系我们

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

    微信号:3007537140

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

    关注我们
    x

    注册

    已经有帐号?