Qt基础
一、控件加载图标+快捷键+tips

二、图形区域显示:采用场景QGraphicsScence、视图QGraphicsView和图形象QGraphicsItem实现

三、在主窗口创建最大最小化部件

四、解决TabWidget不能铺满窗口问题

五、Qt 读取txt文本乱码问题
方法一:使用QString的fromLocal8Bit()函数
QFile txtfile(filePath);
QString tmpStr;
if(txtfile.open(QIODevice::ReadOnly)) {
QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb2312"));//中文转码声明
while(!txtfile.atEnd()) {
QByteArray arr = txtfile.readAll(); // txtfile.readLine();
arr.replace(0x0B,0x0D);
tmpStr = QString::fromLocal8Bit(arr, arr.length());//Window下的QByteArray转QString
}
}
item->tableWidget()->item(row-1,column-1)->setText(tmpStr);
方法二:用QTextCodec的toUnicode方法来显示中文(在程序中试验本方法不适合) QTextCodec *codec = QTextCodec::codecForLocale(); QString a = codec->toUnicode("安师大手动");
六、QPixmap和QImage的区别
1)、QPixmap依赖于硬件,QImage不依赖于硬件。
2)、QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O、图片访问和像素修改而设计的。
3)、当图片小的情况下,直接用QPixmap进行加载,画图时无所谓,当图片大的时候如果直接用QPixmap进行加载,会占很大的内存,一般一张几十K的图片,用QPixmap加载进来会放大很多倍,所以一般图片大的情况下,用QImage进行加载,然后转乘QPixmap用户绘制。QPixmap绘制效果是最好的。
4)、QPimap主要用于加速显示,QImag主要是图像处理
七、发布时遇到问题:
问题一:“This application failed to start because it could not find or load the Qt platform plugin "windows".”
解决方法:从QT主目录下plugins文件夹中的platforms文件夹拷贝到exe所在目录中即可;
问题二:无法读取并显示图像
解决方法:从QT主目录下plugins文件夹中的imageformats文件夹拷贝到exe所在目录中即可,imageformats文件夹包含了许多图片格式的插件;
八、获取Qstring字符串长度
QString 用length()返回字符串的长度,即字节数, 在中英文字符都是以 Unicode 方式编码的,所以,无论中英文都算的长度为 1。
想要取得英文长度为 1 中文长度为 2 的总长度,必须用toLocal8bit()。具体使用方法如下所示:
QString s = "ab中文";
int length = s.length(); //length = 4;
length = s.toLocal8Bit().length(); //length = 6
浙公网安备 33010602011771号