QT自定義的氣泡型別提示框

2021-08-23 14:06:10 字數 2053 閱讀 3020

由於專案需要,自定義了乙個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內部回應,並且在頂層響應,這裡上瀏覽器找了好久的...