gpt4 book ai didi

c++ - 如何在setFixedSize后再次设置启用resize the main window

转载 作者:行者123 更新时间:2023-11-30 02:21:51 35 4
gpt4 key购买 nike

在我的代码中,如果我打开 .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)成员

private:
QSize size_reset;

并在将其设置为固定之前使用它来保存窗口大小:

size_reset = this->size();
this->setFixedSize(648,425);

然后重置窗口大小:

setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);
setMinimumSize(0,0);
this->resize(reset_size);

关于c++ - 如何在setFixedSize后再次设置启用resize the main window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47903356/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com