アプリケーションを開始したときに、Qt Designer で間違ったテンプレートを選択しました。
File -> New -> Widget を実行しました。
今、私はメニューが必要です。したがって、メイン ウィンドウ テンプレートが必要だと思います。
テンプレートをシームレスに変更できますか、それとも新しいフォームを作成してすべてをドラッグする必要がありますか?
アプリケーションを開始したときに、Qt Designer で間違ったテンプレートを選択しました。
File -> New -> Widget を実行しました。
今、私はメニューが必要です。したがって、メイン ウィンドウ テンプレートが必要だと思います。
テンプレートをシームレスに変更できますか、それとも新しいフォームを作成してすべてをドラッグする必要がありますか?
テンプレートQWidget
をQMainWindow
.
今Qt 4.8.4で、次のことを行いました:
Qt Creator の外部で ui ファイルを開き (Qt Creator で閉じた後)、ファイル内の行を編集しました。
編集: 作業中のファイルのバックアップを作成してください。この ui ファイルの編集は少し不適切であり、奇妙で未定義の影響を与える可能性があるためです。
ウィジェット.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Widget</class>
<widget class="QMainWindow" name="Widget"> <!-- This is the line I edited...
"QMainWindow" was "QWidget".-->
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Widget</string>
</property>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
ウィジェット.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QMainWindow>// Edited this line, too
namespace Ui {
class Widget;
}
class Widget : public QMainWindow // Edited this line.
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
最終結果: Qt Creator/Designer では、QMainWindow の空白の領域を右クリックするだけで、ツールバー、メニューバー、ステータスバーなどを追加できるようになりました。
それが役立つことを願っています。