2016-09-30 3 views
0

Qt를 처음 사용합니다. Ubuntu 15.04에서 Qt Creator 3.1.1을 Qt 5.4.1 기반으로 사용.두 창 사이의 통신 방법은 무엇입니까?

오른쪽에있는 추가, 편집, 삭제 및 내보내기 버튼을 사용하여 직원을 주 화면에 나열하는 응용 프로그램을 만들려고합니다. 추가 및 편집 버튼을 클릭하면 다른 하위 창을 열고 각각의 작업을 수행합니다.

사용자가 하위 창에서 직원을 추가/편집/삭제하면 기본 창에서 직원 목록을 새로 고침하고 싶습니다.

전체 코드를 화면에 따라 구분 된 코드로 단일 파일에 쓰고 싶지 않습니다. 하지만 자식 창에서 부모 창 UI 요소에 액세스하는 방법을 잘 모르겠습니다. 그래서 아래 코드를 자식 파일에서 사용하여이 작업을 수행했습니다. 이 기능을 달성하기 위해이 올바른 접근 방식은

QTableWidget *tableWidget = this->parent()->findChild<QTableWidget *>(); 
QSqlQuery query; 
    query.exec("SELECT * FROM employees order by id DESC"); 

    tableWidget->setRowCount(0); 
    tableWidget->setRowCount(query.size()); 
    tableWidget->setColumnWidth(0, 60); 
    tableWidget->setColumnWidth(1, 200); 
    tableWidget->setColumnWidth(2, 150); 
    tableWidget->setColumnWidth(3, 100); 

    while(query.next()) { 

     tableWidget->setItem(columnCount, 0 ,new QTableWidgetItem(query.value(0).toString())); 
     tableWidget->setItem(columnCount, 1 ,new QTableWidgetItem(query.value(1).toString())); 
     tableWidget->setItem(columnCount, 2 ,new QTableWidgetItem(query.value(2).toString())); 
     tableWidget->setItem(columnCount, 3 ,new QTableWidgetItem(query.value(3).toString())); 

     columnCount++; 
    } 

click here for screenshot of application

인가? 나를 안내 해줘. 감사.

+0

당신이 어떤 사이에 의사 소통을하는 것과 같은 방법에서 복귀 한 후, 그럼 그냥 업데이트를 트리거 두 객체 - Qt의 신호 및 슬롯 메커니즘 사용. – dtech

답변

1

보조 창에서 주 창에있는 슬롯에 연결하는 신호를 보낼 수 있습니다.이 슬롯에있는 코드는 해당 슬롯에서 실행됩니다.

또는 이러한 추가 창 (메인 창 열려있는 동안 상호 작용에서 사용자를 차단) 모달 대화 상자가있는 경우 그들은 exec() 전화