QT5:控件


Layouts

Spacers

Buttons

Item Views(Model-Based)

Item Widgets(Item-Based)

Containers

Input Widgets

Display Widgets

Label

Text Browser

Graphics View

Calendar Widget

LCD Number

Progress Bar

Horizontal Line

Vertical Line

OpenGL Widget

QQuickWidget

一.布局排版控件

在QT组件面板中有Layouts和Spacers两个组件面板

注意:布局排版控件不显示
//Layouts(布局)

Vertical Layout:垂直方向布局,组件自动在垂直方向上分布

Horizontal Layout:水平方向布局,组件自动在水平方向上分布

Grid Layout:网格状布局,网格布局大小改变时,每个网格的大小都改变

Form Layout:窗体布局,与网格状布局类似,但是只有最右侧的一列网格会改变大小

(1)ui文件实现
 

(2)代码实现
//Spacers(排版)

Horizontal Spacer:一个用于水平分隔的空格

Vertival Spacer:一个用于垂直分隔的空格

(1)ui文件实现
 

(2)代码实现

二.按钮控件

按钮控件一共有六种:pushButton
                 toolButton
                 radioButton
                 checkBox
                 commandLinkButton
                 dialogButtonBox
//pushButton

(1)创建pushButton

// mainWindow.h

#include
class MainWindow : public QMainWindow { private: QPushButton* pushButton; } // mainWindow.cpp MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow) { pushButton=new QPushButton(this); } (2)pushButton成员函数 void setFlat(bool); void setMenu(QMenu* menu); void showMenu(); void setDefault(bool); void setAutoDefault(bool); QString tr(const char* s, const char* c, int n); QString QAbstractButton::tr(const char* s, const char* c, int n); QString QWidget::tr(const char* s, const char* c, int n); QString QObject::tr(const char* s, const char* c, int); pushButton->setText(tr("显示面积"));

1.pushButton

QPushButton* btn = new QPushButton;
//btn->show();             //show以顶层方式弹出窗口控件
btn->setParent(this);    //让btn对象依赖在mywidget窗口中

//显示文本
btn->setText("第一个按钮");

//创建第二个按钮 按照控件的大小创建窗口
QPushButton* btn2 = new QPushButton("第二个按钮", this);

//移动btn2按钮
btn2->move(100, 100);

//按钮可以重新设置大小
btn2->resize(50, 50);

//设置固定窗口大小
setFixedSize(600, 400);

//设置窗口标题
setWindowTitle("第一个窗口");

三.输入控件

输入控件一共有16种:comboBox

           fontComboBox

           lineEdit

           testEdit

           plainTextEdit

           spinBox

           doubleSpinBox  

           timeEdit

           dateEdit

           date/timeEdit

           dial

           horizontalScrollBar

           verticalScrollBar

           horizontalSlider

           verticalSlider

           keySequenceEdit
(1)lineEdit

// mainWindow.h
 
#include 
  
class MainWindow : public QMainWindow
{
  
private:
    QLineEdit* lineEdit;                 
}


// mainWindow.cpp
  
MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
  
    lineEdit=new QLineEdit(this);
}

四.显示控件

在显示控件(Display Widgets)中,有10种类型的显示控件

Label

Text Browser

Graphics View

Calendar Widget

LCD Number

Progress Bar

Horizontal Line

Vertical Line

OpenGL Widget

QQuickWidget
//Label

#include 

int main(int argc, char* argv[])
{
    QLabel* label = new QLabel();
    ...
    delete label;
}
qt5