• 4185阅读
  • 7回复

[提问]关于编码问题 [复制链接]

上一主题 下一主题
离线cfxks1989
 

只看楼主 倒序阅读 楼主  发表于: 2013-03-22
编码这个问题自己一直没有闹明白;
手头遇到这样一个问题:
我现在获得一组字符串,我确认这个字符串是gbk编码:
例如我获得一个QString str;
使用(int)str.toLatin1().data
得到了对应的数值:191,201,210,198,182,175,180,197,197,204(对应为中文的:可移动磁盘);
那么我怎么能转码编程正确的中文?
求知道~
离线XChinux

只看该作者 1楼 发表于: 2013-03-22
QString str;
...........
QTextStream in(&str);
in.setCodec("GBK");
QString str2 = in.readlAll();

str2就是能正确在界面上显示的字符串了吧。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线cfxks1989

只看该作者 2楼 发表于: 2013-03-26
回 1楼(XChinux) 的帖子
谢谢版主啦,我最后自己找到了一个解决方法:
使用这个函数:
QString QCheckDiskThread::_FromSpecialEncoding(const char *str)
{
    QTextCodec *codec = QTextCodec::codecForName("gbk");
    if (codec)
    {
        return codec->toUnicode(str);
    }
    else
    {
        return QString("");
    }
}
返回值就是了。
离线cfxks1989

只看该作者 3楼 发表于: 2013-03-26
回 1楼(XChinux) 的帖子
还有一个问题想请教下:
我现在使用qcheckbox,不过qt自带的类的方框实在是太小了。我看了qcheckbox属性里面没有设置方框的大小。这个是不是需要自己重绘啊
离线XChinux

只看该作者 4楼 发表于: 2013-03-26
看看Qt Style Sheet,能自定义它的各种状态的图像的
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线cfxks1989

只看该作者 5楼 发表于: 2013-03-27
回 4楼(XChinux) 的帖子
谢谢版主啦,我找到方法了。用qss的设置里面有个indicate的子项是关于方框大小设置。
离线圣域天子

只看该作者 6楼 发表于: 2013-03-27
Re:回 4楼(XChinux) 的帖子
引用第5楼cfxks1989于2013-03-27 13:19发表的 回 4楼(XChinux) 的帖子 :
谢谢版主啦,我找到方法了。用qss的设置里面有个indicate的子项是关于方框大小设置。

能讲得明白点吗?我正好也嫌这方框太大。。。
离线cfxks1989

只看该作者 7楼 发表于: 2013-03-29
回 6楼(圣域天子) 的帖子
这两天没上。回复比较慢。
设置qcheckbox的qss就好了。调用函数setStyleSheet();
语句为:setStyleSheet("::indicator{width:32px;height:32px;}")这个就是设置方框大小32*32 不过你还得设置图标,不让可能达不到效果。
    setStyleSheet("::indicator{width:32px;height:32px;}"\
                             "::indicator:unchecked{image:url(:/images/checkbox_empty.png);}"\
                             "::indicator:checked{image:url(:/images/checkbox_full.png);}");
以上这个是我自己的完整语句。设置的2个图片是大小32*32的。如果要做的更好需要一整套图片,
详细部分请自己阅读qt帮助的:Qt Style Sheets Reference 部分的Customizing QCheckBox。
快速回复
限100 字节
 
上一个 下一个