專案檔案列表:
專案執行效果:
標頭檔案:
ticker.h:
#ifndef ticker_h
#define ticker_h
#include class ticker : public qwidget
qsize sizehint() const;
protected:
void paintevent(qpaintevent *event);
void timerevent(qtimerevent *event);
void showevent(qshowevent *event);
void hideevent(qhideevent *event);
private:
qstring mytext;
int offset;
int mytimerid;
};#endif
cpp檔案:ticker.cpp:
#include #include "ticker.h"
ticker::ticker(qwidget *parent)
: qwidget(parent)
/** * @brief ticker::settext
* @param newtext
* settext()函式用來設定要顯示的文字。它呼叫update()函式強制執行乙個重繪操作,並且呼叫updategeometry()
* 通知對ticker視窗部件負責的任意布局管理器,提示該視窗部件的大小發生了變化。
*/void ticker::settext(const qstring &newtext)
/** * @brief ticker::sizehint
* @return
* sizehint()函式返回文字所需的空間大小,並以此作為視窗部件的理想尺寸。
*/qsize ticker::sizehint() const
/** * @brief ticker::paintevent
* paintevent()函式使用drawtext()繪製文字。它使用fontmetrics()確定文字在水平方向上所需的空間,並且在考慮
* offset值的同時,多次繪製文字,直到能夠條填充整個視窗部件的寬度為止。
*/void ticker::paintevent(qpaintevent * /* event */)
}/**
* @brief ticker::showevent
* showevent()函式用來啟動乙個定時器。qobject::starttimer()呼叫會返回乙個id數字,可以
* 在以後用這個數字識別該定時器。
*/void ticker::showevent(qshowevent * /* event */)
/** * @brief ticker::timerevent
* @param event
* 系統每個一定的時間,都會呼叫一次timerevent()函式。它通過在offset上加1來模擬移動,從而形成
* 文字寬度的連續滾動。然後,它使用qwidget::scroll()把視窗部件的內容向左滾動乙個畫素。
*/void ticker::timerevent(qtimerevent *event)
else
}/**
* @brief ticker::hideevent
* */
void ticker::hideevent(qhideevent * /* event */)
ticker.cpp:
int main(int argc, char *ar**)
Qt QSizePolicy設定視窗部件屬性大小
fixed 表示該視窗部件不能被拉伸或者壓縮,視窗部件的大小總是保持為其大小提示的尺寸。minimum 表示該視窗部件的大小提示就是它的最小大小,不能再進行壓縮,但是能拉伸填充更多的空間。maximim 表示該視窗部件的大小提示就是它的最大大小,不能再進行拉伸,但是能壓縮成更小的空間。preferr...
setStyleSheet來設定視窗部件的樣式
使用setstylesheet來設定圖形介面的外觀 qt style sheets是乙個很有利的工具,允許定製視窗的外觀,此外還可以用子類qstyle來完成,他的語法很大比重 於html的css,但是適用於視窗 qt將會集合所有的樣式表來設定外觀,這稱作級串聯 例如 下面的樣式表指定所有的qline...
Qt QSizePolicy設定視窗部件屬性大小
fixed 表示該視窗部件不能被拉伸或者壓縮,視窗部件的大小總是保持為其大小提示的尺寸。minimum 表示該視窗部件的大小提示就是它的最小大小,不能再進行壓縮,但是能拉伸填充更多的空間。maximim 表示該視窗部件的大小提示就是它的最大大小,不能再進行拉伸,但是能壓縮成更小的空間。preferr...