オブジェクト名からどのようにコントロールを取得するか

Qtでは、QObject::findChild()メソッドやQObject::findChildren()メソッドを使用して、オブジェクト名を使ってウィジェットを取得できます。

オブジェクト名を知っており、コントロールを1つのみ取得する必要がある場合は`QObject::findChild()`メソッドを使用します。このメソッドは、検索するオブジェクト名を表す文字列パラメータを受け取ります。一致するオブジェクトが見つかれば、そのオブジェクトへのポインタが返され、見つからなければnullptrが返されます。

QWidget *widget = findChild<QWidget*>("widgetName");
if (widget) {
    // 找到了控件
} else {
    // 没有找到控件
}

QObject::findChildren()メソッドを使用すると、すべての一致するウィジェットを取得できます。このメソッドは、検索したいオブジェクト名を表す文字列パラメータも受け付けます。一致するウィジェットすべてへのポインターを含むQListを返します。

QList<QWidget*> widgets = findChildren<QWidget*>("widgetName");
if (!widgets.isEmpty()) {
    // 找到了控件
    foreach (QWidget *widget, widgets) {
        // 对每个控件进行处理
    }
} else {
    // 没有找到控件
}

注意、findChild()とfindChildren()メソッドは、QObjectを継承したクラスのみで使用できます。Windowsクラスで使用する場合は、this->findChild()またはthis->findChildren()メソッドを直接呼び出すことができます。

bannerAds