QTableView显示tooltip与设置日志

本文介绍了QTableView组件的详细使用方法,包括如何启用鼠标跟踪、连接信号与槽来显示工具提示,以及如何根据内容自动调整列宽和行高。此外,还提供了一种记录调试信息的方法,通过自定义消息处理器将不同类型的日志信息写入到文件中。
1. 设置QTableView启用鼠标跟踪: 
ui->tableView->setMouseTracking(true); 

2. 与QTableView的entered信号连接: 
connect(ui->tableView, SIGNAL(entered(QModelIndex)), 
this, SLOT(showToolTip(QModelIndex))); 

3. 糟函数: 
void Widget::showToolTip(const QModelIndex &index) { 
if (!index.isValid()) { 
qDebug() << "Invalid index"; 
return; 

QToolTip::showText(QCursor::pos(), index.data().toString() + "\ngoto hell"); 

QCursor::pos(): 返回鼠标的位置. 


==========================================

使用QTableView自己带的函数,函数原型如下: 

ui.tableWidget->resizeColumnToContents (0); 

将第一列根据内容自动调整列宽。 

根据内容自动调整某列的列宽 
void QTableView::resizeColumnToContents ( int column ) [slot] 
Resizes the given column based on the size hints of the delegate used to render each item in the column. 


根据内容自动调整所有列的列宽 
void QTableView::resizeColumnsToContents () [slot] 

Resizes all columns based on the size hints of the delegate used to render each item in the columns. 

根据内容自动调整某一行的行高 
void QTableView::resizeRowToContents ( int row ) [slot] 
Resizes the given row based on the size hints of the delegate used to render each item in the row. 

根据内容自动调整所有行的行高。 
void QTableView::resizeRowsToContents () [slot] 

Resizes all rows based on the size hints of the delegate used to render each item in the rows. 

================================================================================

设置日志:我用了下,感觉没有打时间啊,而且比较粗糙。。。回头有时间自己加点代码完善下 

C++代码
  1. #include <QtDebug>  
  2. #include <QFile>  
  3. #include <QTextStream>  
  4.   
  5. void customMessageHandler(QtMsgType type, const char *msg)  
  6. {  
  7.         QString txt;  
  8.         switch (type) {  
  9.         //调试信息提示  
  10.         case QtDebugMsg:  
  11.                 txt = QString("Debug: %1").arg(msg);  
  12.                 break;  
  13.   
  14.         //一般的warning提示  
  15.         case QtWarningMsg:  
  16.                 txt = QString("Warning: %1").arg(msg);  
  17.         break;  
  18.         //严重错误提示  
  19.         case QtCriticalMsg:  
  20.                 txt = QString("Critical: %1").arg(msg);  
  21.         break;  
  22.         //致命错误提示  
  23.         case QtFatalMsg:  
  24.                 txt = QString("Fatal: %1").arg(msg);  
  25.                 abort();  
  26.         }  
  27.   
  28.         QFile outFile("debuglog.txt");  
  29.         outFile.open(QIODevice::WriteOnly | QIODevice::Append);  
  30.         QTextStream ts(&outFile);  
  31.         ts << txt << endl;  
  32. }  
  33.   
  34. int main( int argc, char * argv[] )  
  35. {  
  36.         QApplication app( argc, argv );  
  37.   
  38.         //先注册自己的MsgHandler  
  39.         qInstallMsgHandler(customMessageHandler);          
  40.           
  41.         //以后就可以像下面这样直接打日志到文件中,而且日志也会包含时间信息  
  42.         qDebug("This is a debug message at thisisqt.com");  
  43.         qWarning("This is a warning message  at thisisqt.com");  
  44.         qCritical("This is a critical message  at thisisqt.com");  
  45.         qFatal("This is a fatal message at thisisqt.com");  
  46.   
  47.         return app.exec();  
  48. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值