2017-12-20 10 views
1

私のコードでメインウィンドウの固定サイズを設定する.mp3ファイルを開くと、別のファイルフォーマットを開くとメインウィンドウのサイズを変更する必要があります。他のファイル形式を開くとサイズ変更を有効にする方法。私はこれを試しました:this->setFixedSize(this->sizeHint());しかし動作しません。設定方法setFixedSizeの後に再度メインウィンドウのサイズを変更する

これは私のコードです。

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. 
    } 
} 

答えて

3

再びサイズ変更可能なウィンドウを作成するには、この方法を試してください。

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); 
+0

を、これが働く理由は 'setFixedSize()は'単に指定された値と最小サイズと最大サイズを設定することで、明らかではありません。上記のコマンドはそれらをデフォルトに戻します。 –

+0

素晴らしい、私のために働く、ありがとう – Learner

関連する問題