如何在 setFixedSize 后再次设置启用 resize the main window
How to set enable resize the main window again after setFixedSize
在我的代码中,如果我打开 .mp3 文件,我为主 window 设置了固定大小,现在如果我打开另一种文件格式,我需要调整主 window 的大小。如果我打开任何其他文件,如何启用调整大小 format.I 试过这个: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.
}
}
要再次调整 window 的大小,试试这个:
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
}
如果您希望它是设置固定大小之前的大小,请在您的 class
中添加一个 QSize 私有成员
private:
QSize size_reset;
并在将其设置为固定之前使用它来保存 window 大小:
size_reset = this->size();
this->setFixedSize(648,425);
然后重置 window 尺寸:
setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);
setMinimumSize(0,0);
this->resize(reset_size);
在我的代码中,如果我打开 .mp3 文件,我为主 window 设置了固定大小,现在如果我打开另一种文件格式,我需要调整主 window 的大小。如果我打开任何其他文件,如何启用调整大小 format.I 试过这个: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.
}
}
要再次调整 window 的大小,试试这个:
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
}
如果您希望它是设置固定大小之前的大小,请在您的 class
中添加一个 QSize 私有成员private:
QSize size_reset;
并在将其设置为固定之前使用它来保存 window 大小:
size_reset = this->size();
this->setFixedSize(648,425);
然后重置 window 尺寸:
setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);
setMinimumSize(0,0);
this->resize(reset_size);