概述
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 屏幕翻转问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复