Level : WORDPRESS BOOK LINKEDIN PATENT Send Mail 동냥하기 hajunho.com

테이블 항목 기본 선택

C++ / / 2022. 2. 15. 22:08
반응형

[mTableViewRgon selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionTop];

 

 

[mTableViewRgon selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionTop];

         }

 

 

DDTBT_SITE_LOC_RGON *data1 = [mListRgon objectAtIndex:0];

         [db selectRgonDfctType:mListType withRgonId:data1.id_rgon];

         

         }

         

 

 

if ([mListType count] > 0) {

         [mTableViewType selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionTop];

         }

 

Objective-C 코드를 C++로 변환하려면, C++ 표준 라이브러리와 필요한 UI 프레임워크(Qt, wxWidgets 등)를 사용하여 유사한 기능을 구현해야 합니다. C++ 표준 라이브러리에는 Objective-C의 UI 컴포넌트와 직접적으로 대응되는 것이 없기 때문에, 여기서는 Qt를 사용한 예를 소개하겠습니다.

먼저 필요한 모듈을 포함하고, 작업에 필요한 클래스를 정의합니다. 

```cpp
#include <QTableView>
#include <QStandardItemModel>
#include <QItemSelectionModel>

// 이 예시는 Qt를 사용하여 설명합니다.
class DataModel {
public:
    int id_rgon;
};

class Database {
public:
    void selectRgonDfctType(std::vector<int>& mListType, int rgonId) {
        // 데이터베이스에서 RgonDfctType를 선택하는 로직 추가
    }
};

class TableViewHandler {
public:
    void selectRowInTableView(QTableView& tableView, int row, int section, bool animated, QItemSelectionModel::SelectionFlag flag = QItemSelectionModel::Select) {
        QModelIndex index = tableView.model()->index(row, section);
        tableView.selectionModel()->select(index, flag);
        tableView.scrollTo(index, QAbstractItemView::PositionAtTop);
    }

    void handleTableViewSelections(QTableView& mTableViewRgon, QTableView& mTableViewType, std::vector<DataModel>& mListRgon, std::vector<int>& mListType, Database& db) {
        // 1. 첫 번째 row와 section을 선택
        selectRowInTableView(mTableViewRgon, 0, 0, false);

        // 2. 데이터베이스 쿼리
        if (!mListRgon.empty()) {
            DataModel data1 = mListRgon[0];
            db.selectRgonDfctType(mListType, data1.id_rgon);
        }

        // 3. mListType이 비어 있지 않은 경우 첫 번째 row와 section을 선택
        if (!mListType.empty()) {
            selectRowInTableView(mTableViewType, 0, 0, false);
        }
    }
};

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    // 예제를 위한 Qt 객체 생성
    QTableView mTableViewRgon, mTableViewType;
    QStandardItemModel modelRgon, modelType;
    mTableViewRgon.setModel(&modelRgon);
    mTableViewType.setModel(&modelType);

    std::vector<DataModel> mListRgon = {{1}, {2}, {3}};
    std::vector<int> mListType = {1, 2, 3};
    Database db;

    TableViewHandler tableViewHandler;
    tableViewHandler.handleTableViewSelections(mTableViewRgon, mTableViewType, mListRgon, mListType, db);

    return app.exec();
}
```

여기서 사용된 Qt 클래스들은 Objective-C의 `UITableView` 기능을 대체하는데 사용됩니다. `QTableView`, `QStandardItemModel` 및 `QItemSelectionModel` 클래스는 `UITableView`와 유사한 역할을 합니다. 데이터베이스 쿼리와 같은 기능은 유사한 방식으로 객체 및 메서드를 정의하여 사용할 수 있습니다.

프로젝트에 따라 다른 라이브러리나 프레임워크를 사용할 수도 있습니다. C++에서 UI를 개발하는 다른 일반적인 방법으로는 wxWidgets, GTK+, FLTK 등이 있습니다. 이러한 프레임워크를 사용하면 다양한 플랫폼에서 C++로 UI 애플리케이션을 개발할 수 있습니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기