如何设置启用setFixedSize后再次调整主窗口的大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置启用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后再次调整主窗口的大小的主要内容,如果未能解决你的问题,请参考以下文章

qt setfixedsize有啥用

如何在 Konsole 中启用“在调整大小时重新换行”? [关闭]

word插入图片后再次打开排版错乱怎么办

MS Access 2010,如何让黄色的启用内容栏再次出现?

初学Qt,label长度改变,窗口大小怎么自动调整

当鼠标悬停在边框上时,如何完全禁用调整窗口大小,包括调整大小图标?