3

QMainWIndow にはいくつかのウィジェットがあり、そのうちの 1 つは QTableView です。

メイン ウィンドウはサイズ変更可能です。

ウィンドウの内容、フォント、その他すべてを自動的にサイズ変更するにはどうすればよいですか?

助けていただければ幸いです、ありがとう。

4

1 に答える 1

2

すべてのウィジェットをレイアウトに配置する必要があります。ユーザーが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
    }
}
于 2013-01-23T16:04:38.077 に答える