我有一個QLabel
和我希望文本裏面的顯示雕刻,類似於CSS中的文字 - 陰影方法。有沒有辦法在Qt中做到這一點?如何創建雕刻效果的文字?
1
A
回答
0
這可以通過覆蓋子類中標籤的paint事件來完成。例如:
#include <QRect>
#include <QLabel>
#include <QPainter>
class QEngravedLabel : public QLabel
{
public:
explicit QEngravedLabel(QWidget *parent=0, Qt::WindowFlags f=0)
: QLabel(parent, f){};
explicit QEngravedLabel(const QString &text, QWidget *parent=0, Qt::WindowFlags f=0)
: QLabel(text,parent,f){};
protected:
virtual void paintEvent(QPaintEvent *pe) override
{
QRect toPaint(pe->rect());
QPainter painter(this);
toPaint.translate(0,1);
painter.setPen(QColor("#CCC")); // light shadow on bottom
painter.drawText(toPaint, this->alignment() ,this->text());
toPaint.translate(0,-2);
painter.setPen(QColor("#333")); // dark shadow on top
painter.drawText(toPaint, this->alignment() ,this->text());
toPaint.translate(0,1);
painter.setPen(QColor("#000000")); // text
painter.drawText(toPaint, this->alignment() ,this->text());
}
};
這些陰影顏色是爲淺灰色背景定製的。
2
比覆蓋更容易paintEvent
使用QGraphicsEffect,正好QGraphicsDropShadowEffect。
QGraphicsDropShadowEffect* effect = new QGraphicsDropShadowEffect();
effect->setBlurRadius(5);
effect->setXOffset(5);
effect->setYOffset(5);
label->setGraphicsEffect(effect);
,結果是這樣的:
如果你要的顏色陰影,你可以很容易地通過QGraphicsDropShadowEffect::setColor成員函數實現這一目標。
希望這會有所幫助。
相關問題
- 1. UILabel中的文字雕刻效果
- 2. Three.js快速文字雕刻
- 3. 如何在CSS中生成雕刻效果?
- 4. 浮雕效果
- 5. 如何獲得UITableViewCell的浮雕效果
- 6. Uilabels中的浮雕效果
- 7. 圖像操作縫雕 - 雕刻順序
- 8. 如何在WPF中創建具有斜面浮雕效果的按鈕
- 9. SVG:獲取浮雕效果
- 10. 這種字體是如何實現雕刻的?
- 11. 創建藝術字文字效果-FabricJs
- 12. 如何創建刻錄文件夾?
- 13. 如何使用文字陰影創建此photoshop效果
- 14. 如何創建批量滾動starwars文字效果?
- 15. 如何創建「圖像建設」效果
- 16. 數據雕刻循環改進
- 17. Excel密碼和雕刻標籤名稱
- 18. Java庫刻錄和打印光雕CD,
- 19. IMAPI2如何刻錄已創建的ISO
- 20. 如何創建平滑CATransition效果
- 21. 如何創建此圖像效果?
- 22. 如何創建漩渦/渦流效果?
- 23. 如何創建谷歌效果?
- 24. 如何重新創建此MouseMove效果?
- 25. 如何創建水印效果?
- 26. 如何用Javascript創建重力效果?
- 27. 如何創建此CSS效果?
- 28. 如何在JS中創建RollOver效果?
- 29. 如何使用javascript創建此效果?
- 30. 如何在PowerShell中創建printf效果
陰影是一種更容易的方法來完成與我所要求的完全不同的事情。陰影效果使文本看起來像在頁面上方浮動。雕刻的效果使文本看起來沉入頁面,所以此方法不回答問題。 – 2014-10-03 16:36:46
對不起,您要求提供「文字陰影」效果,我並不熟悉「刻有」字樣...... – 2014-10-03 17:25:37