QLabel字體設置

1、我主要是使用QLabel和QMovie繪製png、jpeg和gif的動畫,其他的格式沒有試驗,不過,根據經驗如果有相應的插件支持,應該也是可以的,至於,什麼是QT的插件就不在這裏描述了。我之所以使用QMovie而不是用QPixmap(其實也是可以的)主要是我想把繪製靜態圖片和動畫都封裝在統一的一個接口中,而用QPixmap繪製的動畫是不動的。
  2、繪圖的過程:
  繪圖的過程是非常簡單的,首先,新建QLabel和QMovie的對象,這裏,既可以在新建QMovie的時候就用圖片初始化其對象,也可以通過load的方法加載圖片到QMovie ,然後把調用QLabel的setmovie方法在QLabel上顯示圖片,最後調用QLabel的show方法把圖片顯示出來即可。具體的方法:
  QLabel label;
  QMovie* movie = new QMovie("new.png"); //繪製jpeg的圖片也是可以的
  //QMovie* movie = new QMovie("new.jif"); //繪製動畫也是可以的
  movie->start();
  label.setMovie(movie);
  label.show();
  這樣編譯、運行就能在qvfb中看到圖片了。
  3、過程中需要設置的一些Qlabel和QMovie的屬性
  label->setWindowFlags(Qt::FramelessWindowHint); //設置不顯示任務欄
  //設置QLabel背景透明
  QPalette pal;
  pal.setColor(QPalette::Background, QColor(0x00, 0xff, 0x00, 0x00));
  label->setPalette(pal);
  //設置QLabel顯示位置
  label->setGeometry(x,y,w,h );
  //設置QLabel顏色
  pal.setColor(QPalette::WindowText, Qt::red);
  label->setPalette(pal);
  4、在QT界面中顯示文字(未實現中文)
  其實,QLabel本來就可以直接顯示文字,下面的代碼主要顯示一些文字顯示的設置,不多說,直接看代碼吧,比較直觀
  //設置字體大小
  QFont ft;
  ft.setPointSize(fontsize);
  label->setFont(ft);
  //設置背景透明
  QPalette pal ;
  pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));
  label->setPalette(pal);
  //設置字居中顯示 label->setAlignment(Qt::AlignCenter);
  Qt::AlignLeft0x0001Aligns with the left edge.Qt::AlignRight0x0002Aligns with the right edge.Qt::AlignHCenter0x0004Centers horizontally in the available space.Qt::AlignJustify0x0008Justifies the text in the available space.
  //設置顯示的位置
  label->setGeometry(pos.x, pos.y, pos.w, pos.h );
  //放到QLabel上顯示
  label->setText(str);
  label->show();
  當然,顯示圖片、動畫和文字還有別的方法,上面是我主要用到的方法,其他的方法以後遇到我再更新吧
  5、說說QT4繪圖中的多線程機制
  QT4只能在主線程中繪圖,這一點我走了一些彎路。當然QT4也是支持多線程的,其他非主線程中主要完成一些非繪圖的操作,當需要繪圖的時候應該通知主線程,然主線程繪圖,這個通知過程就1+1醫學論文網自然想到信號和槽的機制。要使用信號和槽,在定義類的時候必須包含: Q_OBJECT 宏
  具體的實現是在非主線程中發送一個信號,注意信號函數只需要聲明不需要實現。信號函數可以帶參數,但是不能使用指針;信號函數發送的參數在槽函數端會按照相同的順序收到。比如,我們在一個類中聲明瞭一個信號函數sendmeg(int x,int y),然後在某個地方使用emit sendmeg(10,20),與之關聯的槽函數爲domap(int x,int y),那麼在槽函數執行時x=10,y=20。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章