일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 도커
- 방화벽체크
- 리눅스
- 패키지
- VPN
- Chef
- 우분투
- driver
- Openswan
- 루비
- QT
- ssh
- VIM
- ubuntu
- VMware
- docker registry
- window size
- sudo
- opsworks
- AWS
- docker-compose
- DevOps
- ssh command
- docker
- port
- Linux
- golang
- 드라이버
- RUBY
- docker container
- Today
- Total
목록QT (20)
구리의 창고
QTreeView 의 글씨색을 변경해보자. QTreeWidget 의 경우, setTextColor 라는 함수가 존재한다. 하지만 QTreeView에는 그런거 없다. QStyle 따위를 사용하면 될지 안해봤지만.. 그보다 좋은 방법이 있다. setData 중 적절한 Role을 세팅해주는 것이다. 자세한 내용은 아래 링크를 참고하면된다. http://doc.qt.nokia.com/4.7/qt.html#ItemDataRole-enum setData(QColor(255, 0, 0), Qt::TextColorRole) 정도로 변경해주면된다. enum Qt::ItemDataRoleEach item in the model has a set of data elements associated with it, each w..
QTreeWidget과 다르게 QTreeView는 itemClicked 시그날이 없다. 그래서 QAbstractItemView 에 있는 clicked 시그날을 활용해야한다. QObject::connect(ui.treeView, SIGNAL(clicked(const QModelIndex)), this, SLOT(itemClicked(const QModelIndex))); itemClicked 슬롯은 인자로 QModelIndex를 받게된다. 여기서 Index는 QTreeView에서 클릭된 값을 말한다. QModelIndex의 레퍼런스는 링크를 참고하면된다. http://doc.qt.nokia.com/4.7/qmodelindex.html 보통 클릭시에는 해당 인덱스의 데이터를 필요로 한다. 데이터를 가져오는 ..
메신저같은 프로그램을 만들다보면 한 개만 실행해야 할 때가 있다. 특별한 인자는 없으며 공유메모리를 사용해야한다. #include "MyApp.h" #include #include int main(int argc, char *argv[]) { QApplication a(argc, argv); MyApp w; QSharedMemory shared("very-very-unique-key"); if (!shared.create(512, QSharedMemory::ReadWrite)) { exit(0); } w.show(); return a.exec(); } 위와 같이 간단하게 해결!
일단 공식 문서는 아래 링크에 나와있다. http://doc.qt.nokia.com/4.6/appicon.html 각 플랫폼마다 설정하는 법이 다르다. 필요한 윈도우만 말해보도록 하겠다. 일단 아이콘 파일을 ico 형식에 맞춰서 만든다. 그 다음 appname.rc 파일을 만들고나서 텍스트 에디터로 오픈한다. 있는 내용 전부 지우고 IDI_ICON1 ICON DISCARDABLE "myappico.ico" 위와 같이 적어준다. 그 후, qmake 로 makefile을 생성해주고 appname.pro 파일을 열어서 RC_FILE=appname.rc 를 추가해준다. 그리고 nmake !!
QT프로그래밍을 하다보면 keyPressed 같은 이벤트를 자주 쓰게된다. 이럴 때 마다 기존 위젯을 상속받아 새로운 커스톰위젯을 만들어야하는 상황이 발생한다. 이거 매우매우매우매우 귀찮다.. 파일도 두 개씩 만들어지고!!! 찾아보니 이벤트 필터라는 것이 있다. MyWidget 에 lineEdit 과 nameEdit 이 있다고 가정했을 때 MyWidget::MyWidget(QWidget* parent) { lineEdit->installEventFilter(this); nameEdit->installEventFilter(this); } bool MyWidget::eventFilter(QObject* target, QEvent* event) { if (target == lineEdit) { //TO DO ..
http://doc.qt.nokia.com/4.7/qdesktopwidget.html QDesktopWidget 을 사용하면된다. 하단에 시작표시줄을 제외한 영역을 구하려면.. QDesktopWidget desktop; QRect rect = desktop.availableGeometry(); rect.right() 와 rect.bottom() 을 봐주면된다.
http://doc.qt.nokia.com/4.7/qt.html#WindowFlags QWidget::setWindowFlags 를 통해서 타이틀 바를 삭제 할 수 있다. Qt::WindowsFlags 에 보면 지정 할 수 있는 WindowStyle이 나와있다. 이 중에 Qt::Popup 설정.. WIdget 생성자에서 setWindowFlags(Qt::Popup) 한 줄이면 해결
qt 에서 제공하는 기본예제도 좋다!! 하지만 좀 더 간단하게 정리해보겠다. 일단 트리에 아이템을 집어넣기 위해서는 QTreeWidgetItem을 사용해야한다. 자신의 부모노드를 알려주기 위해서 생성자에 해당 포인터를 넘겨준다. QTreeWidgetItem ( QTreeWidget * parent, int type = Type ) QTreeWidgetItem ( QTreeWidgetItem * parent, int type = Type ) A item - B Item - C Item -- D Item 위와 같은 트리를 구성해보도록 하자. 일단 A는 최상위 부모이다. 그러므로 아래와 같이 사용하면된다. QTreeWidget* tree = new QTreeWidget(); QTreeWidgetItem* it..
트레이 아이콘 사용하기는 간단하다. 예제에서도 찾을 수 있는데 desktop/systray 에서 찾을 수 있다. 간단히 설명해보겠다. #include 선언 후.. 트레이를 사용 할 위젯에서 QSystemTrayIcon *tray = new QSystemTrayIcon(this); tray->show(); 하면 일단 트레이가 보이게된다. 클라이언트는 hide() 로 숨기거나 QWidget::setVisible(bool) 로 조절 할 수 있다.
네이트온 메신저를보면 최소화 상태에서 메시지가 오면 깜빡거린다. 이런걸 flash 라고 그러는데, QT에서는 아래와 같은 함수를 사용한다. http://doc.trolltech.com/4.3/qapplication.html#alert QApplication:alert(this); 고고씽!