QT 控件使用案例

常用控件

在这里插入图片描述

Vertical Layout:垂直布局。

Horizontal Layout:横向(水平)布局。

Grid Layout:网格(栅格)布局。

Form Layout:表单布局。

Horizontal Spacer:水平间隔。

Vertical Spacer:垂直间隔。

表单

头文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

#include <QPushButton> //命令按钮控制头文件
#include <QLabel> //显示标签头文件
#include <QGridLayout> //网格布局头文件
#include <QFormLayout>
#include <QLineEdit>
class MainWindow : public QMainWindow
{
    Q_OBJECT  使用 Q_OBJECT 宏声明这是一个 QObject 派生类,启用 Qt 的元对象系统

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    QGridLayout *gridLayout; //网格布局对象

    QPushButton *button1;
    QPushButton *button2;
    QPushButton *button3;
    QPushButton *button4;

};
#endif // MAINWINDOW_H

源文件:

#include "mainwindow.h"
# if 0
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    // 创建一个中心窗口部件
    QWidget *centralWidget = new QWidget(this);
    setCentralWidget(centralWidget);
    // 创建一个栅格布局
    QGridLayout *gridLayout = new QGridLayout(centralWidget);
    gridLayout->setContentsMargins(10,10,10,10);//设置边距
    gridLayout->setSpacing(10);//设置间距


    //设置按钮
    button1= new QPushButton("按钮1", this);
    button1->setFixedHeight(50);//设置按钮高度
    button1->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);//设置按钮大小策略


    button2= new QPushButton("按钮2", this);
    button2->setFixedWidth(50);//设置按钮宽度
    button2->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);//设置按钮大小策略


    button3= new QPushButton("按钮3", this);
    button3->setFixedHeight(50);//设置按钮高度
    button3->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);//设置按钮大小策略

    button4= new QPushButton("按钮4", this);
    button4->setFixedWidth(50);//设置按钮宽度
    button4->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);//设置按钮大小策略


    //@param parent 对象
    //@param row 行号
    //@param column 列号
    //@param rowSpan 跨行数
    //@param columnSpan 跨列数
    //@param alignment 对齐方式
    gridLayout->addWidget(button1,0,1,1,1);//设置按钮在网格布局的位置
    gridLayout->addWidget(button2,0,0,3,1);//设置按钮在网格布局的位置
    gridLayout->addWidget(button3,2,1,1,2);//设置按钮在网格布局的位置
    gridLayout->addWidget(button4,1,1,1,1);//设置按钮在网格布局的位置
    setLayout(gridLayout);
}

MainWindow::~MainWindow() {}

#endif



MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
{
    // 创建一个中心窗口部件
    QWidget *centralWidget = new QWidget(this);
    setCentralWidget(centralWidget);

    //创建一个表单布局
    QFormLayout *formLayout = new QFormLayout(centralWidget);
    QLineEdit *line1 = new QLineEdit(this);//创建输入框
    QLineEdit *line2 = new QLineEdit(this);
    QLineEdit *line3 = new QLineEdit(this);

    formLayout->addRow("姓名:", line1);//添加行
    formLayout->addRow("年龄:", line2);
    formLayout->addRow("性别:", line3);
    formLayout->setContentsMargins(10,10,10,10);//设置边距
    formLayout->setSpacing(10);//设置间距

    //formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows);//设置不换行
    formLayout->setRowWrapPolicy(QFormLayout::WrapLongRows);//设置包装长行
    formLayout->setLabelAlignment(Qt::AlignLeft);//设置标签对齐方式为左对齐

    setLayout(formLayout);

}

MainWindow::~MainWindow() {}

按钮

在这里插入图片描述

Push Button:命令按钮。

Tool Button:工具按钮。

Radio Button:单选按钮。

Check Box:复选框按钮。

Command Link Button:命令链接按钮。

Dialog Button Box:按钮盒。

Push Button 命令按钮。

头文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
# include <QPushButton>
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private :
    QPushButton *button1;//按键1
    QPushButton *button2;
private slots:
    //声明按钮对应的槽函数
    void button1_clicked();
    void button2_clicked();

};
#endif // MAINWINDOW_H

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->setWindowTitle("My App");
    //设置窗口大小
    //@Param1: 左上角x坐标
    //@Param2: 左上角y坐标
    //@Param3: 宽度
    //@Param4: 高度
    this->setGeometry(0, 0, 400, 200);

    //创建按钮
    button1 = new QPushButton("Button 1", this);
    button2 = new QPushButton("Button 2", this);

    //设置按钮位置
    //button1->move(100, 100);
    button1->setGeometry(20, 20, 100, 50);
    button2->setGeometry(20, 70, 100, 50);

    //链接信号槽
    connect(button1, SIGNAL(clicked()), this, SLOT(button1_clicked()));
    connect(button2, SIGNAL(clicked()), this, SLOT(button2_clicked()));




}

MainWindow::~MainWindow() {}


void MainWindow::button1_clicked(){
    //设置QMainWindow背景颜色
    this->setStyleSheet("QMainWindow{background-color:rgba(255,0,0,100);}");
}

void MainWindow::button2_clicked(){
    //设置QMainWindow背景颜色
    this->setStyleSheet("QMainWindow{background-color:rgba(0,0,0,0.5);}");
}

Tool Button:工具按钮。

头文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QApplication>
#include <QStyle> //引入QStyle类 ,样式
#include <QToolBar> //引入QToolBar类 ,工具条
#include <QToolButton> //引入QToolButton类 ,工具按钮
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QToolBar *toolBar; //工具条
    QToolButton *toolButton; //工具按钮
private slots:
};
#endif // MAINWINDOW_H

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //设置窗口运行位置
    this->setGeometry(0, 0, 400, 300);

    //实例化工具栏
    toolBar = new QToolBar(this);
    //设置工具栏位置
    toolBar->setGeometry(20, 20, 100, 100);

    //实例化QStyle对象
    QStyle *style = QApplication::style();

    QIcon icon = style->standardIcon(QStyle::SP_TitleBarContextHelpButton);

    //实例化ToolButton对象
    toolButton =new QToolButton();
    toolButton->setIcon(icon);//设置按钮图标
    toolButton->setText("Help");//设置按钮提示信息
    toolButton->setToolButtonStyle(Qt::ToolButtonTextUnd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可能只会写BUG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值