2011-07-19 34 views
0

Qtが新しく、QWidgetsのスクロールバーに問題があります。 ウィジェットにレイアウトがあり、そのレイアウトにQMenuBarが含まれています。スクロール領域はウィジェットに関連付けられています。スクロールは正常に機能しますが、ユーザーがスクロールすると、メニューバーは視界から外れます。メニューを一番上に置く方法はありますか?Qt C++ QMenuBarスクロール時のレイアウトの問題

ご協力いただければ幸いです。

ありがとうございました。

こんにちは@utdemir、迅速な返信用

感謝。 QMainWindowを使用することを提案したコードの抜粋です。それは同じ結果をもたらした。

MyWidget::MyWidget(QMainWindow *parent) 
: QMainWindow(parent) 
{ 
    main = new QWidget;  //Widget that contains the layout 
    CreateMenu(); 
    scrollArea = new QScrollArea; 
    layout = new QVBoxLayout(); 

    //layout->setMenuBar(menuBar); 
    this->setMenuBar(menuBar); 
    this->resize(500,500); 
    main->setLayout(layout); 
    this->setCentralWidget(main); 
    scrollArea->setWidget(this); 
    scrollArea->setWidgetResizable(true); 

    scrollArea->show(); 

    this->show(); 
} 
+0

@utdemirあなたの助けをありがとう!ウィジェットごとに1つのメニューバーが必要な場合は、GUIにQMainWindowを使用し、.setMenuBarメソッドを使用できます。 – utdemir

+3

QMenuBarをウィジェットの外に移動してください。 –

+0

@utdemirコードのスニッピが投稿されています。 QMainWindowも同じ結果を出しました。何か提案はありますか?ありがとう –

答えて

0

問題の解決策を説明しました。
メニューバーを含むQMainWindowを作成しました。レイアウトを含むQWidgetを追加しました。スクロール領域はQWidgetに関連付けられています。メインウィンドウの中央ウィジェットはスクロールエリアに設定されています。

main->setLayout(layout); 
this->setCentralWidget(scrollArea); 
scrollArea->setWidget(main); 
scrollArea->setWidgetResizable(true); 
scrollArea->show(); 
this->show(); 

あなたは私たちにサンプルコードを与えることができ

+0

あなた自身の答えを受け入れるようにしてください。 –