Qt4 设置QTableWidget鼠标滑过的颜色
来源:互联网 发布:剑灵捏脸数据人女图片 编辑:程序博客网 时间:2024/05/19 02:41
这是一个简单demo,直接贴代码。
tablewidget.h
#ifndef TABLEWIDGET_H#define TABLEWIDGET_H#include <QTableWidget>#include <QEvent>class TableWidget : public QTableWidget{ Q_OBJECTpublic: explicit TableWidget(QWidget *parent = 0);protected: void setRowColor(int row, QColor color); signals: public slots: void mycellEntered(int row, int column);private: QTableWidget *tableWidget; QColor defaultBkColor; int previousColorRow;};#endif // TABLEWIDGET_H
tablewidget.cpp
#include "tablewidget.h"#include <QMessageBox>#include <QPoint>TableWidget::TableWidget(QWidget *parent) : QTableWidget(parent){ setGeometry(100,100,600,300); defaultBkColor = QColor(255,255,255); //默认背景色 previousColorRow = -1; tableWidget = new QTableWidget(this); tableWidget->setRowCount(10); //设置行数为10 tableWidget->setColumnCount(5); //设置列数为5 tableWidget->setGeometry(10,10,580,280); tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //设置整行选择 tableWidget->setMouseTracking(true); //开启捕获鼠标功能 tableWidget->setStyleSheet("selection-background-color:pink"); //设置选中行颜色 tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //禁止编辑表格 for (int i=0; i<10; i++) for (int j=0; j<5;j++) { QTableWidgetItem *item = new QTableWidgetItem(QIcon(":/btn1_bright"), "Jan"); tableWidget->setItem(i,j,item); } connect(tableWidget,SIGNAL(cellEntered(int,int)),this,SLOT(mycellEntered(int,int)));}void TableWidget::mycellEntered(int row, int column){ QTableWidgetItem *item = 0; //还原上一行的颜色 item = tableWidget->item(previousColorRow, 0); if (item != 0) { this->setRowColor(previousColorRow, defaultBkColor); } //设置当前行的颜色 item = tableWidget->item(row, column); if (item != 0 && !item->isSelected() && !item->text().isEmpty()) { this->setRowColor(row, QColor(193,210,240)); } //设置行的索引 previousColorRow = row;}//设置某一行的颜色void TableWidget::setRowColor(int row, QColor color){ for (int col=0; col<tableWidget->columnCount(); col++) { QTableWidgetItem *item = tableWidget->item(row, col); item->setBackgroundColor(color); }}main.cpp
#include <QApplication>#include <QTextCodec>#include "tablewidget.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForName("System")); //消除乱码 TableWidget tableWidget; tableWidget.show(); return a.exec();}运行效果:
- Qt4 设置QTableWidget鼠标滑过的颜色
- bootStrap 设置鼠标滑过背景颜色
- 设置QTableWidget颜色
- QT4模块一《颜色、字体的设置》
- GridView中鼠标滑过行颜色
- CSS鼠标滑过改变样式颜色
- 鼠标滑过,效果,背景颜色
- jQuery中鼠标滑过变颜色
- GridView:当鼠标滑过,行的背景颜色,鼠标指针发生变化。
- 最简单的背景颜色、背景图颜色鼠标滑过变换
- repeater 设置鼠标滑过,行变色的效果
- QTableWidget的详细设置
- QTableWidget的详细设置
- css 设置鼠标滑过变色效果
- 如何使用Qt4,设置QLabel中字体的颜色。
- 使用Qt4如何设置QLabel中字体的颜色
- QTableWidget实现鼠标移动整行颜色变化
- CSS3鼠标滑过渐变颜色旋转图标特效
- DownloadManager下载管理类2.3新增API介绍
- 英文半字节压缩编码技术
- [ACM]Common Subsequence
- Ubuntu vi 方向键出现字母问题解决方法
- github的使用
- Qt4 设置QTableWidget鼠标滑过的颜色
- face animation: a survey.
- 用户界面(UI)设计的20条原则
- Oracle开发专题之:分析函数(OVER)用法
- PHP数据库连接代码
- Android 中加载网络资源时的优化 缓存和异步机制
- 题目1056:最大公约数
- SFR_R81B.h
- 最快线程间数据交换算法,有效避免锁竞争 -- TwoQueues