Qt5_控制元件介紹(1)
阿新 • • 發佈:2019-02-14
Qt中有各種各樣的控制元件,這裡只介紹一些常用的。
1. 按鈕組(Buttons)
按鈕組(Buttons)如下圖所示。
比如我們建立一個Quit按鈕,程式碼如下所示。
//mywidget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = 0);
~MyWidget();
};
#endif // MYWIDGET_H
//mywidget.cpp
#include "mywidget.h"
#include <qapplication.h>
#include <qpushbutton.h>
#include <qfont.h>
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
setMinimumSize( 200, 120 );
setMaximumSize( 200, 120 );
QPushButton *quit = new QPushButton( "Quit", this);
quit->setGeometry( 62 , 40, 75, 30 );
quit->setFont( QFont( "Times", 18, QFont::Bold ) );
connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) );
}
MyWidget::~MyWidget()
{
}
main.cpp
#include "mywidget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWidget w;
w.setGeometry( 100 , 100, 200, 120 );
w.show();
return a.exec();
}
執行後結果如下:
我們對其他按鈕進行說明:
Tool Button 即工具按鈕是提供對特定命令或者選項快速訪問的特殊按鈕。和普通的命令按鈕不同,工具按鈕不顯示文字標籤,而是圖示。
Radio Button 即單選按鈕,QRadioButton視窗部件為單選按鈕提供了一個文字標籤。QRadioButton是一個能夠切換開(選擇)或者關(沒有選擇)的選擇按鈕。通常單選按鈕是用於當前使用者選擇許多中的一個選項。在同一時刻,單選按鈕組中僅僅只有一個按鈕被選擇;如果使用者選擇其他按鈕,以前選擇的按鈕將要切換為關閉狀態。
Check Box 即為複選按鈕。QCheckBox視窗部件提供一個帶文字標籤的複選按鈕。QCheckBox和QRadioButton都是選項按鈕。QCheckBox能夠在開(選中)或者關(未選中)之間切換。QCheckBox和QRadioButton的區別是在於對使用者選擇的限制。單選按鈕定義了“多選一”的選擇,而複選按鈕定義了“多選多”的選擇。
2. 輸入部件組(Input Widgets)
輸入部件組(Input Widgets)如下圖所示。
在這之中主要介紹一下QDateTime類、QTimer類和QLineEdit類。
在Qt5中,可以使用QDateTime類來獲得系統時間。通過QDateTime::currentDateTime()來獲取本地系統的時間和日期訊號。
QTimer的使用很簡單,只需要幾步就能完成定時器的應用。
1) 新建一個定時器
QTimer *time_clock=new QTimer(parent);
2) 連線這個定時器的訊號和槽,利用定時器的timeout()。
connect(time_clock,SIGNAL(timeout()),this,SLOT(slottimedone()));
3)開啟定時器,並設定定時週期。
定時器定時有兩種方式,start(int time)和setSingleShot(true)。其中,start(int time)表示每隔“time”秒就會重啟定時器,可以重複觸發定時,利用stop()將定時器關掉;而setSingleShot(true)則是僅啟動定時器一次。工程常用前者。
time_clock->start(2000);
QLineEdit窗體元件是一個單行文字編輯框。單行文字編輯框允許使用者通過有用的編輯函式來輸入和編輯單行純文字,該編輯函式包括撤消和重做、剪下和貼上、拖動和放下。
您也可以利用setText()或者insert()函式來改變文字,利用text()函式來獲取文字編輯框的資訊,也可以利用displayText()函式獲取文字顯示的資訊。文字的選擇可以通過setSelection()或者selectAll()函式來設定,也可以通過cut()、copy()、paste()函式來選擇。如果您想改變文字的排列方式,可以通過setAlignment()函式來改變。
當您改變文字的時候,就要發射textChanged()訊號;當您改變文字資訊以後,除了呼叫setText()函式,還要發射textEdited()訊號;當您移動游標的時候,就要發射cursorPositionChanged()訊號;當您點選返回或者進入鍵的時候,就要反射returnPressed()訊號。
3. 顯示控制元件組(Display Widgets)
Graphics View對應於QGraphicsView類,是一種圖形檢視體系結構。將在後邊的內容中專門作為一章詳細來講。
Text Browser 對應於QTextBrowser類。他繼承自QTextEdit,而且僅是隻讀的,對裡面的內容並不能進行更改,但是相對於QTextEdit來講,它還具有連結文字的作用。
4. 空間間隔組(Spacers)
5. 佈局管理組(Layouts)
這幾組控制元件使用起來都比較簡單,在這裡不做贅述。下一小節將對容器組,專案檢視組、專案控制元件組進行介紹。