http://qt-project.org/forums/viewthread/20329
#pragma once class CTreeWidgetDelegate : public QStyledItemDelegate { Q_OBJECT public: explicit CTreeWidgetDelegate(QObject* parent = 0) : QStyledItemDelegate(parent) { } void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex &index) const { QStyledItemDelegate::paint(painter,option,index); QPen pen; pen.setWidth(1); pen.setColor(QColor(200, 200, 200)); pen.setStyle(Qt::DotLine); painter->setPen(pen); painter->drawLine(option.rect.bottomLeft(), option.rect.bottomRight()); painter->drawLine(option.rect.topRight(), option.rect.bottomRight()); } }; ... MyTreeWidget->setItemDelegate(new CTreeWidgetDelegate);
http://www.ffuts.org/blog/right-click-context-menus-with-qt/
// myWidget is any QWidget-derived class myWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(myWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(ShowContextMenu(const QPoint&))); ... void MyClass::ShowContextMenu(const QPoint& pos) // this is a slot { // for most widgets QPoint globalPos = myWidget->mapToGlobal(pos); // for QAbstractScrollArea and derived classes you would use: // QPoint globalPos = myWidget->viewport()->mapToGlobal(pos); QMenu myMenu; myMenu.addAction("Menu Item 1"); // ... QAction* selectedItem = myMenu.exec(globalPos); if (selectedItem) { // something was chosen, do stuff } else { // nothing was chosen } }
현재 보고 있는 중심점
QPointF center = MainView->mapToScene(MainView->viewport()->rect().center());