`

QTableView显示tooltip与设置日志

    博客分类:
  • Qt
 
阅读更多
原文http://www.cppblog.com/biao/archive/2009/08/07/92577.html
狂奔的蜗牛很给力

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(): 返回鼠标的位置.

4. 使用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.

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

#include <QtDebug>
#include <QFile>
#include <QTextStream>

void customMessageHandler(QtMsgType type, const char *msg)
{
        QString txt;
        switch (type) {
        //调试信息提示
        case QtDebugMsg:
                txt = QString("Debug: %1").arg(msg);
                break;

        //一般的warning提示
        case QtWarningMsg:
                txt = QString("Warning: %1").arg(msg);
        break;
        //严重错误提示
        case QtCriticalMsg:
                txt = QString("Critical: %1").arg(msg);
        break;
        //致命错误提示
        case QtFatalMsg:
                txt = QString("Fatal: %1").arg(msg);
                abort();
        }

        QFile outFile("debuglog.txt");
        outFile.open(QIODevice::WriteOnly | QIODevice::Append);
        QTextStream ts(&outFile);
        ts << txt << endl;
}

int main( int argc, char * argv[] )
{
        QApplication app( argc, argv );

        //先注册自己的MsgHandler
        qInstallMsgHandler(customMessageHandler);        
        
        //以后就可以像下面这样直接打日志到文件中,而且日志也会包含时间信息
        qDebug("This is a debug message at thisisqt.com");
        qWarning("This is a warning message  at thisisqt.com");
        qCritical("This is a critical message  at thisisqt.com");
        qFatal("This is a fatal message at thisisqt.com");

        return app.exec();
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics