//不解释,自己看。不保证完整,仅供思路参考#include #include "TableView.h"#include #include int main(int argc, char *argv[]){ QApplication a(argc, argv); QStandardItemModel model; for ( int col = 0; col < 3; col++ ) { QList list; for ( int row = 0; row < 5; row++ ) { list.append(new QStandardItem); } model.appendColumn(list); } TableView view; view.setModel(&model); view.show(); return a.exec();}#ifndef IVIEW_H#define IVIEW_Hclass IView {public: virtual void setMouseOver(const int) =0;};#endif // IVIEW_H #ifndef TABLEVIEW_H#define TABLEVIEW_H#include #include #include #include "IView.h"#include "Delegate.h"class TableView : public QTableView, public IView { Q_OBJECTprivate: int currHovered; void mouseMoveEvent(QMouseEvent *event); void disableMouseOver();public: TableView(QWidget *parent = 0); void setMouseOver(const int);};#endif // TABLEVIEW_H #include "TableView.h"#include TableView
qt 无框dockwidget_Qt QDockWidget实现鼠标移出自动隐藏
最新推荐文章于 2022-03-04 09:54:55 发布
本文展示了如何使用Qt实现一个无框DockWidget,并且当鼠标移出时,DockWidget能够自动隐藏。主要涉及QDockWidget、QStandardItemModel、QTableView和自定义事件处理。代码示例中,通过QStandardItemModel创建表格视图,当鼠标移动到表格的某一行时,该行背景变为红色,鼠标移出后恢复为白色。
摘要由CSDN通过智能技术生成