首页| 论坛| 消息

标题:调用this->setWindowFlags(Qt::FramelessWindowHint )后界面卡死
作者:extre_lin
日期:2015-06-12 14:31
内容:

在QMainWindow的够着函数中调用this->setWindowFlags(Qt::FramelessWindowHint )后界面卡死,卡死的控件有tab Widget 、
lineEdit、以及tabwidget中所有的控件!

右上的关闭按钮仍然有效!
构造函数代码
MyQtSTL::MyQtSTL(QWidget *parent)
: QMainWindow(parent),
ui(new Ui::MyQtSTLClass)
{
this->setWindowFlags(Qt::FramelessWindowHint );
ui->setupUi(this);
OpenGlView=new WGLWidget;
ui->scrollArea->setWidget(OpenGlView);
//this->setMouseTracking(true);
ui->RadioAdapSlice->setChecked(true);
m_SelectSlice=0;
m_VecDir=VECTOR3D(0,0,1);
OpenGlView->m_VecDir=m_VecDir;
ui->FillcomboBox->addItem(QString::fromLocal8Bit("线性填充"));
ui->FillcomboBox->addItem(QString::fromLocal8Bit("偏置填充"));
ui->FillcomboBox->addItem(QString::fromLocal8Bit("混合填充"));
ui->FillcomboBox->addItem(QString::fromLocal8Bit("螺旋填充"));
ui->FillcomboBox->addItem(QString::fromLocal8Bit("一笔画填充"));
ui->lineEditDistan->setValidator(new QDoubleValidator(0,10,3));
ui->lineEditDistan->setText("2");
//this->s ..


#1 [extre_lin 06-12 16:31]
目前找到的原因可能是和 ui->scrollArea->setWidget(OpenGlView)这条函数有关, WGLWidget类是派生QGLwiidget的一个类,不明白其中道理!
#2 [stlcours 06-12 16:55]
我也花了很多时间研究这个问题。结论很清楚,是QT的bug。官方从5.11开始纠正了这个bug,但是却拒绝在qt4的维护版本里纠正这个bug,让人很郁闷。
不过QT源代码深层的原因我没有研究,楼主要是有能力不妨继续研究一下,我也希望能在QT4里解决这个问题!
#3 回 stlcours 的帖子 [extre_lin 06-12 18:11]
stlcours:我也花了很多时间研究这个问题。结论很清楚,是QT的bug。官方从5.11开始纠正了这个bug,但是却拒绝在qt4的维护版本里纠正这个bug,让人很郁闷。
不过QT源代码深层的原因我没有研究,楼主要是有能力不妨继续研究一下,我也希望能在QT4里解决这个问题! (2015-06-12 16:55) 
可是我用的是5.3.2还是出现这个问题
#4 [stlcours 06-12 21:57]
你的代码不全,我也没法帮你做测试。不过巧的是,我现在天天也在用5.32做开发,没有任何问题,到最终发布版本也会用这个版本。其实当初从4.86(我以为这是一个很稳定的维护版本)升级到QT5也就是因为这一个原因。你这个问题还是想办法自己试试。

PS:我之前碰到的症状,和你的描述一模一样,而且也是无边窗口。后来装了10多个QT大小版本,挨个反复测试,确实发现5.10都有这个症状,到5.11就没有了,然后到官方提交了bug,他们也接受这是一个bug,但就是不肯在QT4里纠正了。
#5 [stlcours 06-12 22:01]
我倒是觉得你可以使用5.10和5.11分别测试一下,如果都有这个问题,那我们说的可能不是同一个问题,尽管外表相似。

<< 1 2 >> (1/2)

回复 发表
主题 版块