« はじめに | トップページ | シグナルとスロット »

2005年9月19日 (月)

起動時の画面レイアウトに関して

 レイアウトマネージャーを利用してレイアウトしている場合、起動時だけ思い通りに表示されないことがあります。この場合、一度、インプットスタイルとビュースタイルを切り替えてやればうまく表示されるようになります。が、それでは意味がないので考えてみました。

 インプットスタイルとビュースタイルを切り替えてやれば正常になるということは、ResizeEventを強制的に発生させればいいわけです。通常 main()は、

int main( int argc, char* argv[] )
{
     QPEApplication myapp( argc, argv );

     myMainWindow w( 0 );
     myapp.showMainWidget( &w );

     return myapp.exec();
}

こんな感じですが、showMainWidget を呼び出した後を少し変えてやればうまくいきます。

int main( int argc, char* argv[] )
{
     QPEApplication myapp( argc, argv );

     myMainWindow w( 0 );
     myapp.showMainWidget( &w );

     QSize *sz = new QSize( 640, 480 );
     QApplication::sendEvent( &w, new QResizeEvent( *sz, w.size() ));

     return myapp.exec();
}

 実際のところ、指定するサイズは何であっても、内部で適当なサイズに変えてくれるようですので、( 640, 480 )でなくてもかまわなかったと思います。

|

« はじめに | トップページ | シグナルとスロット »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/139339/6018407

この記事へのトラックバック一覧です: 起動時の画面レイアウトに関して:

« はじめに | トップページ | シグナルとスロット »