web-dev-qa-db-ja.com

ユーザーがQMainWindowのサイズを変更するときにコールバックを割り当てる方法は?

QMainWindowでサイズ変更イベントのチュートリアルのようなスキームを見つけることも、Qtデザインウィンドウのドロップダウンメニューにサイズ変更イベントを追加するオプションも表示されませんでした。

Qtは初めてです。 QMainWindowのサイズ変更イベントのスロット関数を書きたいのですが。そのようなイベントはありますか?これどうやってするの?

16
Barney

サイズ変更イベント があります。イベントのカスタム処理を実行するには、独自のサイズ変更イベントハンドラーを作成する必要があります。あなたの場合、QMainWindowから派生するクラスを作成し、 resizeEvent 関数を再実装する必要があります。コードは次のようになります。

void MyMainWindow::resizeEvent(QResizeEvent* event)
{
   QMainWindow::resizeEvent(event);
   // Your code here.
}

Qt Scribbleの例 には、サイズ変更イベントをオーバーライドする例もあります(メインウィンドウにはありません)。

30
RA.

これは私と一緒にQt5で動作します。 QTableWidgetのアイコンのサイズを変更するには:

mainWindow.h
...
private slots:
void resizeEvent(QResizeEvent*);
...

mainWindow.cpp
...
void mainWindow::resizeEvent(QResizeEvent*)
{
    tableWidget->setIconSize(QSize(tableWidget->size()/7)); //7 or whatever number you need it to get the full icon size
}
1
Ivanovic