qt开发过程中遇到的问题

时间:2021-06-16 19:49:55

1:调整窗体大小不生效
项目需求根据点击tabwidget不同的tab修改窗体大小以适应内容,在使用resize函数对窗体大小进行调整的时候,发现仅仅使用this->resize(QSize(1280,720));无法实现改变窗体大小。setGeometry()函数依然如此;(无法触发resizeevent)添加adjustSize()后发现触发了两次resizeEvent依然无法满足需求。之后发现sizeHint()函数(sizeHint 是获取缺省大小)能够满足需求。
代码片段:

void RaderForm::on_tabWidget_currentChanged(int index)
{
if(ui->tabWidget->count()==5){
if(index==3||index==4){
this->resize(QSize(768,676));
}else{
this->resize(QSize(1280,720));
}
}else if(ui->tabWidget->count()==2){
if(index==0){
this->resize(QSize(1280,720));
}else if(index==1){
this->resize(QSize(768,676));
}
}
this->sizeHint();
}

2:QReadWriteLock的作用
虽然互斥的功能保证了临界区资源的安全,但是在某些方面并不符合实际;比如一般情况下,资源可以被并发读!QReadWriteLock的作用就是保证各个线程能并发的读某个资源,但是要写的话,就得真的lock了(所以,QReadWriteLock适合大量并发读,偶尔会有写的情况);

本文仅为个人工作过程中遇到的问题记录,杂乱无序,后期会做阶段性整理