由於專案需要,自定義了乙個qt氣泡顯示的控制項,參照了一部分網上的**,自己也修改了許多,可支援四個不同的方向。不多說,上圖:
**如下:
const int shadow_width = 15; // 視窗陰影寬度;
const int ********_width = 15; // 小三角的寬度;
const int ********_height = 10; // 小三角的高度;
const int border_radius = 5; // 視窗邊角的弧度;
/*****arrow_widget.h*******/
class arrowwidget : public qwidget
; // 設定小三角起始位置;
void setstartpos(int startx);
// 設定小三角寬和高;
void set********info(int width, int height);
void settext(qstring s);
void setderection(derection d);
qstring text();
qgraphicsdropshadoweffect* shadoweffect;
qlabel *lb_text;
protected:
void paintevent(qpaintevent *);
void mousepressevent (qmouseevent *);
private:
// 小三角起始位置;
int m_startx;
// 小三角的寬度;
int m_********width;
// 小三角高度;
int m_********height;
derection derect;
};/*****arrow_widget.cpp*******/
arrowwidget::arrowwidget(qwidget *parent):
qwidget(parent),
m_startx(50),
m_********width(********_width),
m_********height(********_height)
// 設定小三角顯示的起始位置;
void arrowwidget::setstartpos(int startx)
void arrowwidget::set********info(int width, int height)
void arrowwidget::settext(qstring s)
void arrowwidget::setderection(arrowwidget::derection d)
qstring arrowwidget::text()
void arrowwidget::paintevent(qpaintevent *)
drawpath.addpolygon(********polygon);
painter.drawpath(drawpath);
}void arrowwidget::mousepressevent(qmouseevent *)
/**********main.cc***********/
arrowwidget *w;
w = new arrowwidget(this);
w->setderection (arrowwidget::left);
w->setgeometry (510,103,130, 80);
w->setstartpos(60);
w->set********info(20, 12);
w->hide ();
Qt 自定義的氣泡型別提示視窗
介面定義盡可能的詳細備註到 h 檔案中。arrowwidget.h ifndef arrowwidget h define arrowwidget h include include include const int shadow width 30 視窗陰影寬度 const int width 3...
QT 自定義不規則提示框
我們看到到過很多的輸入提示的提示框,例如乙個某個 的註冊介面,當使用者註冊時輸入的格式不正確時,會有乙個提示框彈出,來提示使用者該如何輸入。現在我們想在qt中也實現這樣乙個效果,那麼該如何實現呢?實現 如下 include include class tipbox public qwidget in...
自定義的提示框
上面橙色的就是提示框,position是fixed的,在這個編寫過程中確實遇到了難點,那就是 我的頻道 是iframe,而我們如果在iframe中直接加入這個js,那麼它的fixed只是相對於iframe的,而不是當前的視窗,所以,我們要在iframe內部回應,並且在頂層響應,這裡上瀏覽器找了好久的...