私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
目次
Qt では、子ウィンドウ (サブウィンドウ) を作成および管理して、マルチウィンドウ アプリケーションを実装できます。
子ウィンドウは、ダイアログ ボックス、独立したウィンドウ、または MDI (Multiple Document Interface) 子ウィンドウにすることができます。
QDockWidget クラスを通じて子ウィンドウを作成します。
- 子ウィンドウ オブジェクトを作成します。 QDockWidget* dockWidget=new QDockWidget();
- 子ウィンドウをメイン ウィンドウに追加します: this->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
- サブウィンドウのタイトルを設定します: dockWidget->setWindowTitle("これはサブウィンドウのタイトルです");
- サブウィンドウにコントロールを追加する場合、このウィンドウにサブコントロールを直接設定することはできません。
- まず、別の QWidget オブジェクトを作成し、この QWidget オブジェクトにコントロールを設定します。
- 次に、この QWidget オブジェクトを dockWidget に設定します。
//为dockWidget赋予QWidget对象 QWidget* container=new QWidget(); dockWidget->setWidget(container);
- dockWidget には QWidget オブジェクトを 1 つしか含めることができないため、新しいコントロールを追加する場合は、それを QWidget オブジェクトに追加する必要があります。
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); QDockWidget* dockWidget=new QDockWidget(); this->addDockWidget(Qt::LeftDockWidgetArea,dockWidget); dockWidget->setWindowTitle("这是子窗口的标题"); //为dockWidget赋予QWidget对象 QWidget* container=new QWidget(); dockWidget->setWidget(container); //创建两个控件 QLabel* label=new QLabel("这是一个label控件"); QPushButton* pushButton=new QPushButton("这是一个按钮"); //创建一个布局管理利器,并且设置到QWidget对象中 QVBoxLayout* layout=new QVBoxLayout(); container->setLayout(layout); //将两个控件添加到布局管理器中 layout->addWidget(label); layout->addWidget(pushButton); }
- setAllowAreas(Qt::DockWidgetArea | Qt::DockWidgetArea) メソッドを通じて、許可されるドッキング位置を設定します。デフォルトは Qt::LeftDockWidgetArea - 左です。
- 4 つの位置を設定でき、デフォルトの位置は上です。
- Qt::TopDockWidgetArea——上
- Qt::BottomDockWidgetArea——下
- Qt::LeftDockWidgetArea——左
- Qt::RightDockWidgetArea——右