| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 |
- Linux
- VPN
- DevOps
- docker-compose
- golang
- port
- RUBY
- ubuntu
- VMware
- docker registry
- 루비
- 드라이버
- ssh
- 방화벽체크
- sudo
- docker container
- 패키지
- 리눅스
- driver
- docker
- window size
- AWS
- Chef
- VIM
- Openswan
- 우분투
- opsworks
- QT
- ssh command
- 도커
- Today
- Total
목록2011/09 (5)
구리의 창고
delete 시에는 아래와 같이 NULL 인지 아닌지 체크해줄 필요가 없다. if (p) //useless { delete p; }
Model/View 프로그래밍을 하다보면 많은 정보들이 QModelIndex 형식으로 넘어온다. 그리고 그 index에 맞는 특정 column, row 의 정보가 필요하다. 아래와 같이 가져 올 수 있다. const QAbstractItemModel * model = index.model(); qDebug() data(model->index(row, col), Qt::DisplayRole); QVariant로 리턴되므로 입맛에 맞게 고쳐쓰면 된다. * QStandardItemModel 에는 itemFromIndex 라는 함수가 존재한다. QStandardItem * QStandardItemModel::itemFromIndex ( const QModelIndex & index ) const http://d..
QTableView 문서를 뒤적거려보면 setColumnWidth(int index, int width) 라는 함수를 발견 할 수 있다. http://doc.qt.nokia.com/4.7/qtableview.html 보통 QTableView를 쓰게되면 subclass 를 만들어서 아래처럼 그 안에서 초기화를 하게된다. TableView::TableView(QWidget* parent) : QTableView(parent) { model = new TableModel(); setModel(model); setColumnWidth(0, 30); } 하지만, setColumnWidth는 subclass 안에서 호출하면 작동하지 않는다. 아래처럼 TableView 로드가 끝나고 나서 불러야한다. TableVie..
QTreeView를 사용 할 때 checkbox를 사용하다보면 문제가 생긴다. 아이템과 마우스를 처리하면서 clicked 시그날을 사용 할 때가 있는데, 문제는 item을 클릭할 때와 checkbox를 클릭 할 때 체크되게 하는 경우이다. checkbox도 item으로 인식하기 때문에 check와 click이 같이 발생하게 되는것이다. 그래서 시그날이 발생하는 순서를 살펴봤다. * clicked 의 경우 mousePressEvent() -> mouseReleaseEvent() => clicked 발생 * checked 의 경우 (시그날은 아니지만) mouseReleaseEvent() => checked 발생 위와 같이 mouseReleaseEvent() 시에 checked와 clicked 가 같이 발생하..
QT 에 clicked() 라는 마우스 클릭시 발생하는 시그날이 있다. MFC에 익숙해져있다면 click은 보통 좌클릭을 생각 할 것이다. 이럴 때 우클릭 이벤트를 막아야한다. mousePressEvent 를 받아서 우클릭이면 ignore 시킨다. 아래는 QTreeView 의 경우를 예를 든 소스이다. void OrganizationTreeView::mousePressEvent(QMouseEvent* event) { if (event->button() == Qt::RightButton) { event->ignore(); } else { QTreeView::mousePressEvent(event); } }