phoneticlabel.h

来自「Motorola E680I QtE 词典软件NDIct源码。」· C头文件 代码 · 共 41 行

H
41
字号
#include <qlabel.h>
#include <qpixmap.h> 
#include <qstring.h> 
#include <qbitmap.h>
class PhoneticLabel: public QLabel{

	public:
		PhoneticLabel(QWidget* parent):QLabel(parent)
		{
			convPhone=NULL;
		};
		QPixmap (*convPhone) (QChar src,int& wd);

		void drawContents ( QPainter * p )
		{
			QString txt=text();
    	QPixmap pm;
    	int x=0,y=0,wd=0;
    	int width=rect().width();
    	y=4;
    	for(unsigned int i=0;i<txt.length();i++)
    	{		
    		pm= convPhone(txt[i], wd);
    		if(x+wd>=width)
    		{
    			x=0;
    			y+=18;
    		}
    		if(wd>0)
    			p->drawPixmap(QPoint(x,y),pm);
    		else
    		{
    			p->drawText(x,y+12,(QChar)txt[i]);
    			wd=p->fontMetrics().width((QChar)txt[i]);
    		}
    		x += wd;
    	} 
      p->end();
		};
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?