mirror of
https://gitee.com/drabel/LibQQt.git
synced 2025-01-04 10:18:44 +08:00
fix conflict
This commit is contained in:
commit
65c8be6c94
@ -99,7 +99,15 @@ contains (CONFIG, QQT_SOURCE_BUILDIN) {
|
||||
#link_from_sdk do move qqt to sdk path at app pre link command not lib build time
|
||||
#mod qqt source to start post link is not needed here.
|
||||
#need mod app souce after every pri mod.
|
||||
#起初,qmake步骤被安置在QQt里,所以只有更改源代码才能启动POSTLINK.现在放置在App里了,这里的touch修改源代码不需要了.
|
||||
#App修改源代码,Creator会自动qmake,启动qmake步骤PRILINK+POSTLINK
|
||||
#App修改pro,必须手动qmake,Creator才会qmake,启动qmake步骤PRILINK+POSTLINK
|
||||
#App必须注意,此处不再持续编译QQt.
|
||||
#QQt持续编译配置开关
|
||||
CONFIG += continued_build
|
||||
contains(CONFIG, continued_build){
|
||||
system("touch $${QQT_SOURCE_ROOT}/frame/qqtapplication.cpp")
|
||||
}
|
||||
include ($${QQT_SOURCE_ROOT}/qqt_install.pri)
|
||||
|
||||
#in this pri use QQT_SDK_ROOT QQT_SDK_PWD QQT_LIB_PWD
|
||||
|
@ -18,6 +18,7 @@ QQtCustomProgressBar::QQtCustomProgressBar ( QWidget* parent ) : QWidget ( paren
|
||||
nullPosition = 0;
|
||||
lineWidth = 10;
|
||||
cornerRadius = 10;
|
||||
lineCapStyle = Qt::RoundCap;
|
||||
|
||||
showPercent = true;
|
||||
showFree = false;
|
||||
@ -162,7 +163,7 @@ void QQtCustomProgressBar::drawArc ( QPainter* painter, int radius )
|
||||
pen.setWidthF ( lineWidth );
|
||||
|
||||
/*这里可以更改画笔样式更换线条风格*/
|
||||
pen.setCapStyle ( Qt::RoundCap );
|
||||
pen.setCapStyle ( ( Qt::PenCapStyle ) lineCapStyle );
|
||||
|
||||
double arcLength = 360.0 / ( maxValue - minValue ) * ( value - minValue );
|
||||
QRect rect ( -radius, -radius, radius * 2, radius * 2 );
|
||||
@ -591,6 +592,15 @@ void QQtCustomProgressBar::setLineWidth ( int lineWidth )
|
||||
}
|
||||
}
|
||||
|
||||
void QQtCustomProgressBar::setLineCapStyle ( int lineCapStyle )
|
||||
{
|
||||
if ( this->lineCapStyle != lineCapStyle )
|
||||
{
|
||||
this->lineCapStyle = lineCapStyle;
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
void QQtCustomProgressBar::setShowPercent ( bool showPercent )
|
||||
{
|
||||
if ( this->showPercent != showPercent )
|
||||
|
@ -55,6 +55,7 @@ class QQTSHARED_EXPORT QQtCustomProgressBar : public QWidget
|
||||
Q_PROPERTY ( int nullPosition READ getNullPosition WRITE setNullPosition )
|
||||
Q_PROPERTY ( int lineWidth READ getLineWidth WRITE setLineWidth )
|
||||
Q_PROPERTY ( int cornerRadius READ getCornerRaduis WRITE setCornerRadius )
|
||||
Q_PROPERTY ( int lineCapStyle READ getLineCapStyle WRITE setLineCapStyle )
|
||||
|
||||
Q_PROPERTY ( bool showPercent READ getShowPercent WRITE setShowPercent )
|
||||
Q_PROPERTY ( bool showFree READ getShowFree WRITE setShowFree )
|
||||
@ -114,9 +115,9 @@ public:
|
||||
{
|
||||
TextStyle_None = 0, /*不显示*/
|
||||
TextStyle_Middle_Percent = 1, /*只在中央显示百分比*/
|
||||
TextStyle_Percent = 2, /*只显示百分比*/
|
||||
TextStyle_Text = 3, /*只显示文字*/
|
||||
TextStyle_Percent_Text = 4, /*显示百分比和文字*/
|
||||
TextStyle_Percent = 2, /*只在下部显示百分比*/
|
||||
TextStyle_Text = 3, /*不在下部显示百分比,只在中央显示文字*/
|
||||
TextStyle_Percent_Text = 4, /*和在下部显示百分比,和在中央显示文字*/
|
||||
};
|
||||
|
||||
explicit QQtCustomProgressBar ( QWidget* parent = 0 );
|
||||
@ -130,6 +131,7 @@ public:
|
||||
int getNullPosition() const;
|
||||
int getLineWidth() const;
|
||||
int getCornerRaduis() const { return cornerRadius; }
|
||||
int getLineCapStyle() const { return lineCapStyle; }
|
||||
|
||||
bool getShowPercent() const;
|
||||
bool getShowFree() const;
|
||||
@ -176,6 +178,8 @@ public Q_SLOTS:
|
||||
void setNullPosition ( int nullPosition );
|
||||
/*设置线条宽度*/
|
||||
void setLineWidth ( int lineWidth );
|
||||
/*设置线条的帽子(线头)的样式 = Qt::PenCapStyle*/
|
||||
void setLineCapStyle ( int lineCapStyle );
|
||||
|
||||
/*设置是否显示百分比*/
|
||||
void setShowPercent ( bool showPercent );
|
||||
@ -231,13 +235,13 @@ signals:
|
||||
public slots:
|
||||
|
||||
protected:
|
||||
void paintEvent ( QPaintEvent* );
|
||||
void drawBackground ( QPainter* painter, int radius );
|
||||
void drawArc ( QPainter* painter, int radius );
|
||||
void drawPolo ( QPainter* painter, int radius );
|
||||
void drawWave ( QPainter* painter, int radius );
|
||||
void drawText ( QPainter* painter, int radius );
|
||||
void drawPercentText ( QPainter* painter, int radius );
|
||||
virtual void paintEvent ( QPaintEvent* );
|
||||
virtual void drawBackground ( QPainter* painter, int radius );
|
||||
virtual void drawArc ( QPainter* painter, int radius );
|
||||
virtual void drawPolo ( QPainter* painter, int radius );
|
||||
virtual void drawWave ( QPainter* painter, int radius );
|
||||
virtual void drawText ( QPainter* painter, int radius );
|
||||
virtual void drawPercentText ( QPainter* painter, int radius );
|
||||
|
||||
private:
|
||||
int maxValue; /*最小值*/
|
||||
@ -246,6 +250,7 @@ private:
|
||||
|
||||
int nullPosition; /*起始角度*/
|
||||
int lineWidth; /*线条宽度*/
|
||||
int lineCapStyle; /*线条的帽子(线头)的样式*/
|
||||
|
||||
bool showPercent; /*是否显示百分比*/
|
||||
QString text; /*文字*/
|
||||
|
@ -158,13 +158,27 @@ void QQtPictureTabBar::drawPicture ( QPainter* p )
|
||||
{
|
||||
p->save();
|
||||
int sel = currentIndex() == index ? BTN_PRESS : BTN_NORMAL;
|
||||
#if 1
|
||||
//tabRect = rect()?
|
||||
p->drawPixmap ( tRect0, QIcon ( imgList[index][sel] ).pixmap ( tRect0.size(), QIcon::Normal, QIcon::On ) );
|
||||
#endif
|
||||
|
||||
/*
|
||||
* 失真不明显,使用以下方法
|
||||
*/
|
||||
//QImage image(iconList[index][sel]);
|
||||
//p.drawItemPixmap(tabRectValue, Qt::AlignLeft |Qt::AlignTop, QPixmap::fromImage(image.scaled(tabRectValue.size(), Qt::KeepAspectRatio)));
|
||||
#if 0
|
||||
QImage image ( iconList[index][sel] );
|
||||
p.drawItemPixmap ( tabRectValue, Qt::AlignLeft | Qt::AlignTop, QPixmap::fromImage ( image.scaled ( tabRectValue.size(),
|
||||
Qt::KeepAspectRatio ) ) );
|
||||
#endif
|
||||
|
||||
//需要QStylePainter支援
|
||||
//为什么不用这个呢?因为上边那个QIcon直接缩放到了完整的符合Icon大小的图.直接居中.
|
||||
//这个不需要,多次一举.
|
||||
#if 0
|
||||
p->drawItemPixmap ( tRect0, Qt::AlignCenter, QIcon ( imgList[index][sel] ).pixmap ( tRect0.size(), QIcon::Normal,
|
||||
QIcon::On ) );
|
||||
#endif
|
||||
p->restore();
|
||||
}
|
||||
}
|
||||
|
@ -16,8 +16,8 @@ QQtProgressBar::QQtProgressBar ( QWidget* parent ) :
|
||||
m_trunk = "./skin/default/bk_progress_trunk.png";
|
||||
ui->widthTrunk->setPixmap ( m_trunk );
|
||||
ui->widgetBack->setPixmap ( m_back );
|
||||
ui->widthTrunk->setType ( QQtWidget::QQTTILEDWIDTH );
|
||||
ui->widgetBack->setType ( QQtWidget::QQTZOOMWIDTH );
|
||||
ui->widthTrunk->setImageStyle ( QQtWidget::QQTTILEDWIDTH );
|
||||
ui->widgetBack->setImageStyle ( QQtWidget::QQTZOOMWIDTH );
|
||||
}
|
||||
|
||||
QQtProgressBar::~QQtProgressBar()
|
||||
|
@ -20,7 +20,7 @@ QQtWidget::~QQtWidget()
|
||||
|
||||
void QQtWidget::setPixmap ( const QString& pic )
|
||||
{
|
||||
bool ret = mImg.load ( pic );
|
||||
bool ret = mImage.load ( pic );
|
||||
/*请确认文件是否拷贝成功。*/
|
||||
//pline() << ret << mImg.isNull();
|
||||
update();
|
||||
@ -28,19 +28,19 @@ void QQtWidget::setPixmap ( const QString& pic )
|
||||
|
||||
void QQtWidget::setPixmap ( const QPixmap& pixmap )
|
||||
{
|
||||
mImg = pixmap.toImage();
|
||||
mImage = pixmap.toImage();
|
||||
update();
|
||||
}
|
||||
|
||||
void QQtWidget::setPixmap ( const QImage& image )
|
||||
{
|
||||
mImg = image;
|
||||
mImage = image;
|
||||
update();
|
||||
}
|
||||
|
||||
void QQtWidget::paintEvent ( QPaintEvent* event )
|
||||
{
|
||||
if ( mImg.isNull() )
|
||||
if ( mImage.isNull() )
|
||||
return QWidget::paintEvent ( event );
|
||||
|
||||
QStylePainter p ( this );
|
||||
@ -49,18 +49,52 @@ void QQtWidget::paintEvent ( QPaintEvent* event )
|
||||
{
|
||||
case QQTCENTER:
|
||||
{
|
||||
/*
|
||||
/**
|
||||
* 要达到居中的目标,QImage需要做的size判断很繁复,这里使用QIcon做一些中间转换的后续转换,可以很容易的达到绘制合理大小的pixmap的目的。
|
||||
* source: pixmap file image
|
||||
* QImage 输入、输出两侧是pixmap
|
||||
* 借助(+QIcon) QIcon 输入、输出两侧也是pixmap
|
||||
* dest: 所需要的、合理大小的pixmap
|
||||
*/
|
||||
//这个也不行.???不能缩放...
|
||||
#if 0
|
||||
QPixmap pix;
|
||||
pix.convertFromImage ( mImage );
|
||||
p.drawPixmap ( rect(), pix );
|
||||
#endif
|
||||
|
||||
//计算繁琐
|
||||
#if 0
|
||||
QSize rSize = rect().size();
|
||||
QSize iSize = mImage.rect().size();
|
||||
int lX = iSize.width() <= rSize.width() ? iSize.width() : rSize.width();
|
||||
int lY = iSize.height() <= rSize.height() ? iSize.height() : rSize.height();
|
||||
QSize mSize ( lX, lY );
|
||||
p.drawItemPixmap ( rect(), Qt::AlignCenter, QPixmap::fromImage ( mImage.scaled ( mSize, Qt::KeepAspectRatio ) ) );
|
||||
#endif
|
||||
|
||||
//缩小图片的时候,失败了.???不是的,外部使用的时候请注意,你的widget最小大小是不是0,0.如果不是,那么你的fixedSize是不是太小了,能设置成功吗?
|
||||
//写法复杂
|
||||
#if 0
|
||||
QIcon icon;
|
||||
icon.addPixmap ( QPixmap::fromImage ( mImg ), QIcon::Normal, QIcon::On );
|
||||
icon.addPixmap ( QPixmap::fromImage ( mImage ), QIcon::Normal, QIcon::On );
|
||||
p.drawItemPixmap ( rect(), Qt::AlignCenter, icon.pixmap ( rect().size(), QIcon::Normal, QIcon::On ) );
|
||||
//QSize mSize = mImg.rect() > rect() ? rect().size() : mImg.size();
|
||||
//p.drawItemPixmap ( rect(), Qt::AlignCenter, QPixmap::fromImage ( mImg.scaled ( mSize, Qt::KeepAspectRatio ) ) );
|
||||
#endif
|
||||
|
||||
//经过验证,
|
||||
//QIcon的构造函数参数为pixmap的有bug,不能正常获得完整pixmap.
|
||||
//QIcon的构造函数参数为QString的是正常的.
|
||||
//以上结论错误,都是好的,没有bug,受到了外部widget,setMinimumSize的限定蛊惑,setFixedSize无效导致的.
|
||||
//不居中.
|
||||
#if 0
|
||||
p.drawPixmap ( rect(), QIcon ( QPixmap::fromImage ( mImage ) ).pixmap ( rect().size(), QIcon::Normal, QIcon::On ) );
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
p.drawItemPixmap ( rect(), Qt::AlignCenter, QIcon ( QPixmap::fromImage ( mImage ) ).pixmap ( rect().size(),
|
||||
QIcon::Normal, QIcon::On ) );
|
||||
#endif
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
@ -68,7 +102,7 @@ void QQtWidget::paintEvent ( QPaintEvent* event )
|
||||
{
|
||||
p.drawItemPixmap ( rect(), Qt::AlignLeft | Qt::AlignTop,
|
||||
/*.copy() 切出图片的左上部分使用*/
|
||||
QPixmap::fromImage ( mImg.copy ( rect() )
|
||||
QPixmap::fromImage ( mImage.copy ( rect() )
|
||||
.scaledToWidth ( rect().width() )
|
||||
) );
|
||||
}
|
||||
@ -78,8 +112,8 @@ void QQtWidget::paintEvent ( QPaintEvent* event )
|
||||
{
|
||||
p.drawItemPixmap ( rect(), Qt::AlignLeft | Qt::AlignTop,
|
||||
/*不.copy() 切出图片的中间部分使用*/
|
||||
QPixmap::fromImage ( mImg
|
||||
.scaled ( rect().width(), mImg.height(), Qt::IgnoreAspectRatio )
|
||||
QPixmap::fromImage ( mImage
|
||||
.scaled ( rect().width(), mImage.height(), Qt::IgnoreAspectRatio )
|
||||
) );
|
||||
}
|
||||
break;
|
||||
@ -108,7 +142,7 @@ void QQtWidget::mouseReleaseEvent ( QMouseEvent* event )
|
||||
{
|
||||
m_lcTimer->stop();
|
||||
emit click();
|
||||
emit clickWithPoint(event->pos());
|
||||
emit clickWithPoint ( event->pos() );
|
||||
}
|
||||
|
||||
return QWidget::mouseReleaseEvent ( event );
|
||||
@ -117,13 +151,13 @@ void QQtWidget::mouseReleaseEvent ( QMouseEvent* event )
|
||||
void QQtWidget::mouseDoubleClickEvent ( QMouseEvent* event )
|
||||
{
|
||||
emit doubleClick();
|
||||
emit doubleClickWithPoint(event->pos());
|
||||
emit doubleClickWithPoint ( event->pos() );
|
||||
return QWidget::mouseDoubleClickEvent ( event );
|
||||
}
|
||||
|
||||
void QQtWidget::slot_timeout()
|
||||
{
|
||||
emit longClick();
|
||||
emit longClickWithPoint(mlongClickPoint);
|
||||
emit longClickWithPoint ( mlongClickPoint );
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#ifndef QQTWIDGET_H
|
||||
#ifndef QQTWIDGET_H
|
||||
#define QQTWIDGET_H
|
||||
|
||||
#include <qqt-local.h>
|
||||
@ -22,6 +22,9 @@ public:
|
||||
|
||||
enum ImageStyle
|
||||
{
|
||||
/**
|
||||
* 整个居中,全面缩放显示
|
||||
*/
|
||||
QQTCENTER,
|
||||
/*
|
||||
* 会产生label的效果,左右按照rect长,但是不缩放形状
|
||||
@ -31,7 +34,7 @@ public:
|
||||
QQTZOOMWIDTH,
|
||||
QQTZOOMHEIGHT,
|
||||
};
|
||||
void setType ( ImageStyle style = QQTCENTER ) { m_style = style; }
|
||||
void setImageStyle ( ImageStyle style = QQTCENTER ) { m_style = style; }
|
||||
|
||||
void setPixmap ( const QString& pic = QString() );
|
||||
void setPixmap ( const QPixmap& pixmap );
|
||||
@ -43,9 +46,9 @@ signals:
|
||||
void longClick();
|
||||
|
||||
signals:
|
||||
void clickWithPoint(QPoint point);
|
||||
void doubleClickWithPoint(QPoint point);
|
||||
void longClickWithPoint(QPoint point);
|
||||
void clickWithPoint ( QPoint point );
|
||||
void doubleClickWithPoint ( QPoint point );
|
||||
void longClickWithPoint ( QPoint point );
|
||||
|
||||
// QWidget interface
|
||||
protected:
|
||||
@ -66,7 +69,7 @@ private:
|
||||
/*pixmap是必要的。绘图用pixmap。*/
|
||||
/*内部没有使用QPixmap存储,因为如果缩放widget,pixmap就没办法了,img有*/
|
||||
/*内部对QIcon的使用删除了,icon不是必要的。*/
|
||||
QImage mImg;
|
||||
QImage mImage;
|
||||
//for longClickWithPoint()
|
||||
QPoint mlongClickPoint;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user