篇首语:本文由小编为大家整理,主要介绍了如何设置启用setFixedSize后再次调整主窗口的大小相关的知识,希望对你有一定的参考价值。
在我的代码中,我为主窗口设置了固定大小如果我打开.mp3文件,现在我需要调整主窗口的大小,如果我打开另一种文件格式。如果我打开任何其他文件格式如何启用调整大小。我试过这个:this->setFixedSize(this->sizeHint());
但不工作
这是我的代码。
void MainWindow::on_actionOpen_triggered() QString filename= QFileDialog::getOpenFileName(this,"Open Folder","","Open a File(*.*)"); on_actionStop_triggered(); player->setMedia(QUrl::fromLocalFile(filename)); on_actionPlay_triggered(); if(filename.endsWith(".mp3")) qDebug() << " file is mp3"; this->setFixedSize(648,425); else this->setFixedSize(this->sizeHint()); //this not working.
答案
要使窗口再次调整大小,请尝试以下操作:
if(filename.endsWith(".mp3")) qDebug() << " file is mp3"; this->setFixedSize(648,425);else setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX); setMinimumSize(0,0); //now you should be able to resize it
如果您希望它在设置固定大小之前的大小,请在您的班级中拥有一个QSize私有成员
private: QSize size_reset;
并在将其设置为固定之前使用它来保存窗口大小:
size_reset = this->size();this->setFixedSize(648,425);
然后重置窗口大小:
setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);setMinimumSize(0,0);this->resize(reset_size);
以上是关于如何设置启用setFixedSize后再次调整主窗口的大小的主要内容,如果未能解决你的问题,请参考以下文章