8、QT基礎(chǔ)——常用控件

      網(wǎng)友投稿 898 2025-03-31

      Qt為我們應(yīng)用程序界面開(kāi)發(fā)提供的一系列的控件,下面我們介紹兩種最常用一些控件,所有控件的使用方法我們都可以通過(guò)幫助文檔獲取。

      8.1 QLabel控件使用

      QLabel是我們最常用的控件之一,其功能很強(qiáng)大,我們可以用來(lái)顯示文本,圖片和動(dòng)畫等。

      顯示文字 (普通文本、html)

      通過(guò)QLabel類的setText函數(shù)設(shè)置顯示的內(nèi)容:

      void??? setText(const QString &)

      可以顯示普通文本字符串

      QLable *label = new QLable;

      label->setText(“Hello, World!”);

      可以顯示HTML格式的字符串

      比如顯示一個(gè)鏈接:

      QLabel * label = new QLabel(this);

      label ->setText("Hello, World");

      label ->setText("

      百度一下

      ");

      label ->setOpenExternalLinks(true);

      其中setOpenExternalLinks()函數(shù)是用來(lái)設(shè)置用戶點(diǎn)擊鏈接之后是否自動(dòng)打開(kāi)鏈接,如果參數(shù)指定為true則會(huì)自動(dòng)打開(kāi)。

      顯示圖片

      可以使用QLabel的成員函數(shù)setPixmap設(shè)置圖片

      void? setPixmap(const QPixmap &)

      首先定義QPixmap對(duì)象

      QPixmap pixmap;

      然后加載圖片

      pixmap.load(":/Image/boat.jpg");

      8、QT基礎(chǔ)——常用控件

      最后將圖片設(shè)置到QLabel中

      QLabel *label = new QLabel;

      label.setPixmap(pixmap);

      顯示動(dòng)畫

      可以使用QLabel 的成員函數(shù)setMovie加載動(dòng)畫,可以播放gif格式的文件

      void? setMovie(QMovie * movie)

      首先定義QMovied對(duì)象,并初始化:

      QMovie *movie = new QMovie(":/Mario.gif");

      播放加載的動(dòng)畫:

      movie->start();

      將動(dòng)畫設(shè)置到QLabel中:

      QLabel *label = new QLabel;

      label->setMovie(movie);

      8.2 QLineEdit

      Qt提供的單行文本編輯框。

      設(shè)置/獲取內(nèi)容

      獲取編輯框內(nèi)容使用text(),函數(shù)聲明如下:

      QString???? text() const

      設(shè)置編輯框內(nèi)容

      void? setText(const QString &)

      設(shè)置顯示模式

      使用QLineEdit類的setEchoMode () 函數(shù)設(shè)置文本的顯示模式,函數(shù)聲明:

      void? setEchoMode(EchoMode mode)

      EchoMode是一個(gè)枚舉類型,一共定義了四種顯示模式:

      QLineEdit::Normal 模式顯示方式,按照輸入的內(nèi)容顯示。

      QLineEdit::NoEcho 不顯示任何內(nèi)容,此模式下無(wú)法看到用戶的輸入。

      QLineEdit::Password? 密碼模式,輸入的字符會(huì)根據(jù)平臺(tái)轉(zhuǎn)換為特殊字符。

      QLineEdit::PasswordEchoOnEdit?? 編輯時(shí)顯示字符否則顯示字符作為密碼。

      另外,我們?cè)偈褂肣LineEdit顯示文本的時(shí)候,希望在左側(cè)留出一段空白的區(qū)域,那么,就可以使用QLineEdit給我們提供的setTextMargins函數(shù):

      void setTextMargins(int left, int top, int right, int bottom)

      用此函數(shù)可以指定顯示的文本與輸入框上下左右邊界的間隔的像素?cái)?shù)。

      8.3 其他控件

      Qt中控件的使用方法可參考Qt提供的幫助文檔。

      8.4 自定義控件

      在搭建Qt窗口界面的時(shí)候,在一個(gè)項(xiàng)目中很多窗口,或者是窗口中的某個(gè)模塊會(huì)被經(jīng)常性的重復(fù)使用。一般遇到這種情況我們都會(huì)將這個(gè)窗口或者模塊拿出來(lái)做成一個(gè)獨(dú)立的窗口類,以備以后重復(fù)使用。

      在使用Qt的ui文件搭建界面的時(shí)候,工具欄欄中只為我們提供了標(biāo)準(zhǔn)的窗口控件,如果我們想使用自定義控件怎么辦?

      例如:我們從QWidget派生出一個(gè)類SmallWidget,實(shí)現(xiàn)了一個(gè)自定窗口,

      // smallwidget.h

      class SmallWidget : public QWidget

      {

      Q_OBJECT

      public:

      explicit SmallWidget(QWidget *parent = 0);

      signals:

      public slots:

      private:

      QSpinBox* spin;

      QSlider* slider;

      };

      // smallwidget.cpp

      SmallWidget::SmallWidget(QWidget *parent) : QWidget(parent)

      {

      spin = new QSpinBox(this);

      slider = new QSlider(Qt::Horizontal, this);

      // 創(chuàng)建布局對(duì)象

      QHBoxLayout* layout = new QHBoxLayout;

      // 將控件添加到布局中

      layout->addWidget(spin);

      layout->addWidget(slider);

      // 將布局設(shè)置到窗口中

      setLayout(layout);

      // 添加消息響應(yīng)

      connect(spin,

      static_cast(&QSpinBox::valueChanged),

      slider, &QSlider::setValue);

      connect(slider, &QSlider::valueChanged,

      spin, &QSpinBox::setValue);

      }

      那么這個(gè)SmallWidget可以作為獨(dú)立的窗口顯示,也可以作為一個(gè)控件來(lái)使用:

      打開(kāi)Qt的.ui文件,因?yàn)镾mallWidget是派生自Qwidget類,所以需要在ui文件中先放入一個(gè)QWidget控件, 然后再上邊鼠標(biāo)右鍵

      彈出提升窗口部件對(duì)話框

      添加要提升的類的名字,然后選擇 添加

      添加之后,類名會(huì)顯示到上邊的列表框中,然后單擊提升按鈕,完成操作.

      我們可以看到, 這個(gè)窗口對(duì)應(yīng)的類從原來(lái)的QWidget變成了SmallWidget

      再次運(yùn)行程序,這個(gè)widget_3中就能顯示出我們自定義的窗口了.

      Qt

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:wps表格怎么添加批注(wps中如何添加批注)
      下一篇:如何從標(biāo)簽上看出文檔是否已經(jīng)被保存(為什么標(biāo)簽不能保存)
      相關(guān)文章
      亚洲狠狠婷婷综合久久| 亚洲第一区香蕉_国产a| 老汉色老汉首页a亚洲| 久久精品国产亚洲一区二区| 亚洲综合另类小说色区色噜噜| 国产亚洲综合精品一区二区三区| 亚洲国产成人精品无码区花野真一 | 久久精品视频亚洲| 亚洲国产三级在线观看| 亚洲国产精品乱码一区二区 | 亚洲videos| 2020国产精品亚洲综合网| 亚洲熟妇无码AV| 亚洲AV无码AV男人的天堂不卡| 亚洲AV色无码乱码在线观看 | 亚洲Aⅴ在线无码播放毛片一线天 亚洲avav天堂av在线网毛片 | 亚洲一区在线观看视频| 最新亚洲精品国偷自产在线| 亚洲爆乳少妇无码激情| 亚洲高清无码综合性爱视频| 久久精品国产精品亚洲下载 | 亚洲中文字幕无码爆乳| 亚洲a∨国产av综合av下载| 亚洲乱亚洲乱妇24p| 国产成人 亚洲欧洲| 亚洲成a人片在线观看国产| 久久久久无码专区亚洲av| 国产亚洲一区二区三区在线观看| 亚洲AV无码码潮喷在线观看| 久久久久亚洲Av无码专| 亚洲大尺码专区影院| 国产亚洲精品VA片在线播放| 亚洲AV无码AV日韩AV网站| 亚洲一区无码精品色| 亚洲乱色熟女一区二区三区丝袜| 亚洲高清在线播放| 亚洲乱码卡三乱码新区| 亚洲Av永久无码精品黑人| 亚洲午夜福利精品无码| 亚洲国产精品高清久久久| 亚洲高清美女一区二区三区|