QMainWIndow にはいくつかのウィジェットがあり、そのうちの 1 つは QTableView です。
メイン ウィンドウはサイズ変更可能です。
ウィンドウの内容、フォント、その他すべてを自動的にサイズ変更するにはどうすればよいですか?
助けていただければ幸いです、ありがとう。
QMainWIndow にはいくつかのウィジェットがあり、そのうちの 1 つは QTableView です。
メイン ウィンドウはサイズ変更可能です。
ウィンドウの内容、フォント、その他すべてを自動的にサイズ変更するにはどうすればよいですか?
助けていただければ幸いです、ありがとう。
すべてのウィジェットをレイアウトに配置する必要があります。ユーザーがQMainWindowのサイズを変更すると、レイアウトはQMainWindow内のすべてのウィジェットのサイズを自動的に変更します。QtCreatorIDEとコーディングの両方でレイアウトを追加できます。
アップデート:
Qt Creatorでレイアウトを追加すると、レイアウトは自動的にmocファイルにコーディングされ、ユーザーによるコーディングによって動作を変更する必要はありません。
しかし、クラスコンストラクターでのコーディングを介して:
QVBoxLayout *layout = new QVBoxLayout(parent);
layout->addWidget(widget1);
layout->addWidget(widget2);
layout->addWidget(widget3);
this->setLayout(layout);
ただし、QLabelのフォントを変更する場合は、QMainWindowのresizeEventによって行われます。したがって、MainWindowのサイズを変更すると、resizeEvent がトリガーされるため、次のコードを使用します。
mainwindow.hで、resizeEventを宣言します。
protected:
void resizeEvent(QResizeEvent* event);
mainwindow.cppでresizeEventを実装します:
void MainWindow::resizeEvent(QResizeEvent *event)
{
MainWindow::resizeEvent(event);
if(this)
{
// QLabel process
}
}