QT使用中的一些技巧

1、解决中文乱码:
在main函数中添加以下语句:
 QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));

2.打开/关闭文件:
bool MainWindow::saveAs()
{
    QString fileName = QFileDialog::getSaveFileName(this,
                               tr("Save Spreadsheet"), ".",
                               tr("Spreadsheet files (*.sp)"));
    if (fileName.isEmpty())
        return false;

    return saveFile(fileName);
}

void MainWindow::open()
{
    if (okToContinue()) {
        QString fileName = QFileDialog::getOpenFileName(this,
                                   tr("Open Spreadsheet"), ".",
                                   tr("Spreadsheet files (*.sp)"));
        if (!fileName.isEmpty())
            loadFile(fileName);
    }
}

3.QLineEdit对字符的验证:
            QRegExp regx("[a-zA-Z0-9]+$");
            QValidator *validator = new QRegExpValidator(regx, lined );
            lined->setValidator( validator );
通过设置QLineEdit的Validator就可以获得验证字符的能力,可以自动过滤掉其他字符,并可通过调用正则表达式进行扩充
QT已经内置了整形和浮点型的Validator:
QIntValidator
QDoubleValidator

4、将将ANSII转换为宽字符:

首先调用 setlocale函数进行编码设置,如果转换为中文,就是:
 setlocale(LC_ALL, "chs");
然后调用 mbstowcs函数。
 mbstowcs(wtmp,item->title,64);

 

posted @ 2009-10-07 11:51  飘啊飘  阅读(721)  评论(0编辑  收藏  举报