我是靠谱客的博主 愤怒黄豆,最近开发中收集的这篇文章主要介绍qt 5 屏幕翻转问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

qt 5  取消了 qws,使用了 QGraphicsView,  这里提供了使用的一些方法,如果有更好的,欢迎大家指正。

方法一:

	
#include <QGraphicsScene>
#include <QGraphicsProxyWidget>
#include <QGraphicsView>


MainWindow w;

QGraphicsScene *scene = new QGraphicsScene;

QGraphicsProxyWidget *widget = scene->addWidget(&w,
Qt::FramelessWindowHint);

widget->setRotation(90);

QGraphicsView *view = new QGraphicsView(scene);

view->resize(1024, 600);

view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

view->show();

这种, 只能翻转  界面本身和他的子界面。

  而且有几个缺点:1, w.close() 函数只能关闭 w, view它关不掉

     2,当要翻转对话框时 dlg.exec() , 变得无效了

     3,如果界面的子界面 想去掉标题栏 , 翻转之后,又会出现标题栏。到现在还没找到解决方法。


所以有了方法二,想将界面翻转放到界面内。


方法二:

先将界面中的所有控件放到 widget 中 并布局 ,就叫 m_widget_rorate吧, 翻转时就翻转这个widget


this->layout()->removeWidget(ui->m_widget_rorate);



QGraphicsScene *scene = new QGraphicsScene;

QGraphicsProxyWidget *widget = scene->addWidget(ui->m_widget_rorate,
Qt::FramelessWindowHint);

widget->setRotation(90);


QGraphicsView *view = new QGraphicsView(scene);

view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

view->resize(ui->m_widget_rorate->size());

view->setFrameShape(QFrame::NoFrame);


this->layout()->addWidget(view);

这下所有问题都解决了

但是,又出现一个问题,当界面里面有QTablewidget 时 ,  在格子里面放控件后, 滑动滑块,控件不跟着滑块移动。



如果以上有错误的地方,本人实力有限,大家请包涵,如果有更好的方法,谢谢回复



最后

以上就是愤怒黄豆为你收集整理的qt 5 屏幕翻转问题的全部内容,希望文章能够帮你解决qt 5 屏幕翻转问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部