いくつかのオブジェクトを表示するために使用されるメインウィジェットがあるとします。これらのオブジェクトの名前はQListWidgetに保存されます。ここで、ユーザーが1つのオブジェクト(QListWidgetの1つのアイテム)を選択したときに、オブジェクトの名前を引数として取る別のウィンドウで別のウィジェットを開きたいと思います。
class MainWidget
{
Q_OBJECT
public slots:
void openSelection();
};
class ChildWidget
{
public:
ChildWidget(QString name, QWidget* parent = nullptr);
};
void MainWidget::openSelection()
{
QString selectedObjectName = ui->objectsNamesList->selectedItem()->text();
ChildWidget* detaildedWiew = new ChildWidget(selectedObjectName, this);
detaildedWiew->show();
}
これを行うと、子ウィジェットが開きますが、独自のスペースがありません。親の領域にロックされています。親とは関係なく、画面を自由に走り回るために、子供たちを解放する必要があります。これどうやってするの?Qtの方法はありますか、それとも「疑似子」関係を定義して、疑似子を適切に削除するシステムを開発する必要がありますか?