记录实现点击按钮全屏

this.icshow是记录我判断展示全屏和取消全屏图片的

此方法不影响F11 


//判断按钮是否处于全屏状态
if (this.icshow === true) {
    //全屏
    document.documentElement.requestFullscreen();
} else {
    //取消全屏
    document.exitFullscreen();
}
mounted() {
    //监听屏幕大小
    window.onresize = () => {
        //window.innerHeight当前内容高度, screen.height当前渲染窗口高度。
      if (window.innerHeight == screen.height) {
        this.icShow = false;
      } else {
        this.icShow = true;
      }
    };
},

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Qt和C++来实现这个功能。首先,你需要创建一个Qt应用程序,并在窗口中添加一个视频播放器和一个工具栏。 接下来,在工具栏中添加两个QPushButton按钮,一个用于电子放大,一个用于全屏显示。你可以使用QVBoxLayout和QHBoxLayout来布局工具栏和视频播放器。 当点击电子放大按钮时,你需要将视频窗口切换到全屏模式。你可以使用QWidget的setWindowState函数来实现这一点,将窗口状态设置为Qt::WindowFullScreen。 接下来,你需要捕获鼠标的点击事件,并在全屏模式下实现放大和缩小的操作。你可以使用QWidget的mousePressEvent和mouseReleaseEvent函数来处理鼠标点击事件。 在mousePressEvent函数中,你需要记录鼠标点击的位置,并通过计算鼠标移动的距离来确定放大或缩小操作的区域。你可以使用QCursor的pos函数来获取鼠标的当前位置。 在mouseReleaseEvent函数中,你需要检查是否按下了ESC按键,并恢复到全屏模式。你可以使用QKeyEvent来检测ESC按键的释放事件。 以下是一个简单的示例代码,用于实现你描述的功能: ```cpp #include <QtWidgets> class VideoPlayer : public QMainWindow { Q_OBJECT public: VideoPlayer(QWidget *parent = nullptr) : QMainWindow(parent) { QWidget *centralWidget = new QWidget(this); setCentralWidget(centralWidget); QVBoxLayout *layout = new QVBoxLayout(centralWidget); // 创建视频播放器 QVideoWidget *videoWidget = new QVideoWidget(this); layout->addWidget(videoWidget); // 创建工具栏 QToolBar *toolBar = new QToolBar(this); layout->addWidget(toolBar); // 创建电子放大按钮 QPushButton *zoomInButton = new QPushButton("电子放大", this); toolBar->addWidget(zoomInButton); // 创建全屏显示按钮 QPushButton *fullScreenButton = new QPushButton("全屏显示", this); toolBar->addWidget(fullScreenButton); // 设置工具栏样式 toolBar->setMovable(false); toolBar->setIconSize(QSize(24, 24)); // 连接按钮点击事件 connect(zoomInButton, &QPushButton::clicked, this, &VideoPlayer::zoomIn); connect(fullScreenButton, &QPushButton::clicked, this, &VideoPlayer::toggleFullScreen); // 设置视频播放器 player = new QMediaPlayer(this); player->setVideoOutput(videoWidget); player->setMedia(QUrl::fromLocalFile("video.mp4")); } protected: void mousePressEvent(QMouseEvent *event) override { if (isFullScreen()) { if (event->buttons() & Qt::LeftButton) { zoomInStartPos = event->pos(); } } } void mouseReleaseEvent(QMouseEvent *event) override { if (isFullScreen()) { if (event->key() == Qt::Key_Escape) { toggleFullScreen(); return; } if (event->buttons() & Qt::LeftButton) { QPoint zoomInEndPos = event->pos(); int dx = zoomInEndPos.x() - zoomInStartPos.x(); int dy = zoomInEndPos.y() - zoomInStartPos.y(); // 执行放大或缩小操作 if (dx > 0 && dy > 0) { // 放大操作 // TODO: 执行放大操作的代码逻辑 } else if (dx < 0 && dy < 0) { // 缩小操作 // TODO: 执行缩小操作的代码逻辑 } } } } private slots: void zoomIn() { if (isFullScreen()) { // 执行放大操作 // TODO: 执行放大操作的代码逻辑 } } void toggleFullScreen() { if (isFullScreen()) { setWindowState(Qt::WindowNoState); } else { setWindowState(Qt::WindowFullScreen); } } private: QMediaPlayer *player; QPoint zoomInStartPos; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); VideoPlayer videoPlayer; videoPlayer.show(); return app.exec(); } #include "main.moc" ``` 请注意,这只是一个简单的示例代码,你还需要根据你的需求进行适当修改和完善。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值