QT-常用控件

QT-常用控件

GUI继承简介

布局管理器

 

#include "widget.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QGridLayout>
#include <QFormLayout>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    le = new QLineEdit(this);
    le1 = new QLineEdit(this);
    pb = new QPushButton("OK", this);
#if 1
    QFormLayout *fbox = new QFormLayout;//表格布局
    fbox->addRow("user", le);//能显示文字的标签控件
    fbox->addRow("pawd", le1);
    fbox->addRow("", pb);
    this->setLayout(fbox);
#endif
#if 0
    QVBoxLayout *vbox = new QVBoxLayout;//垂直布局管理器
    vbox->addWidget(le);
    vbox->addWidget(le1);
    vbox->addWidget(pb);

    this->setLayout(vbox);
#endif

#if 0
    QHBoxLayout *hbox = new QHBoxLayout;//水平布局
    hbox->addWidget(le);
    hbox->addWidget(le1);
    hbox->addWidget(pb);
    this->setLayout(hbox);
#endif

#if 0
    QGridLayout *gbox = new QGridLayout;//网状布局
    gbox->addWidget(le, 0, 0);
    gbox->addWidget(le1, 1, 1);
    gbox->addWidget(pb, 2, 2);
    this->setLayout(gbox);
#endif
}

Widget::~Widget()
{

}

 输入输出控件

 

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

#include <QLineEdit>//行输入
#include <QTextEdit>//输入多行
#include <QComboBox>//下拉列表框控件
#include <QTimeEdit>//选择数值的圆形滑动条控件
#include <QDial>//选择数值的圆形滑动条控件
#include <QSlider>//滑动条
#include <QScrollBar>//滚动条

#include <QLabel>//显示文本和图像控件
#include <QLCDNumber>//显示数字控件
#include <QProgressBar>//显示进度控件


class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

private:
    //input
    QLineEdit *le;
    QTextEdit *te;
    QComboBox *cb;
    QTimeEdit *timee;
    QDial *dl;
    QSlider *sd;
    QScrollBar *sb;

    //output
    QLabel *lb, *lb1;
    QLCDNumber *lcd;
    QProgressBar *pgb;
};

#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>//垂直布局
#include <QHBoxLayout>//水平布局

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    //input
    le = new QLineEdit(this);
    te = new QTextEdit;
    cb = new QComboBox;
    cb->addItem("read");//向一个列表或下拉框控件中添加新的项
    cb->addItem("write");
    timee = new QTimeEdit;
    dl = new QDial;
    sd = new QSlider;
    sd->setOrientation(Qt::Horizontal);//控制控件方向的函数
    sb = new QScrollBar;
    sb->setOrientation(Qt::Horizontal);
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(le);
    vbox->addWidget(te);
    vbox->addWidget(cb);
    vbox->addWidget(timee);
    vbox->addWidget(dl);
    vbox->addWidget(sd);
    vbox->addWidget(sb);

    //output
    lb = new QLabel("hello");
    lb1 = new QLabel;
    QPixmap pix("1.png");//QPixmap是Qt中用于处理图像的类之一。它可以用于创建、显示和操作图像。QPixmap类提供了一系列函数,用于加载图像、保存图像、调整图像大小、绘制图像等。
    lb1->setFixedSize(100, 100);//调整文件大小,将图片放在项目生成的影子目录下
    lb1->setScaledContents(true);//图片自动缩放
    lb1->setPixmap( pix );
    lcd = new QLCDNumber;
    pgb = new QProgressBar;
    QVBoxLayout *vbox1 = new QVBoxLayout;
    vbox1->addWidget(lb);
    vbox1->addWidget(lb1);
    vbox1->addWidget(lcd);
    vbox1->addWidget(pgb);

    QHBoxLayout *hbox = new QHBoxLayout;//水平布局
    hbox->addLayout(vbox);//将两个处置布局对象进行水平布局
    hbox->addLayout(vbox1);
    this->setLayout(hbox);
    //d1发一个信号,lcd通过槽函数进行动作
    connect(dl, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));
    connect(dl, SIGNAL(valueChanged(int)), pgb, SLOT(setValue(int)));
    connect(dl, SIGNAL(valueChanged(int)), sd, SLOT(setValue(int)));
    connect(dl, SIGNAL(valueChanged(int)), sb, SLOT(setValue(int)));
}

Widget::~Widget()
{

}

按钮

 

#ifndef WIDGET_H
#define WIDGET_H

#include <QLineEdit>
#include <QPushButton>
#include <QCheckBox>

#include <QWidget>

class Widget : public QWidget
{
    Q_OBJECT
public slots:
    void setpass(bool flag)//定义一个槽函数,传参进行判断
    {
        if(!flag)
            le->setEchoMode(QLineEdit::Password);
        else
            le->setEchoMode(QLineEdit::Normal);
    }

public:
    Widget(QWidget *parent = 0);
    ~Widget();
private:
    QLineEdit *le;
    QCheckBox *ck;
    QPushButton *pb;
};

#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    le = new QLineEdit;
    //    le->setEchoMode(QLineEdit::Password);
    ck = new QCheckBox("show passwd");
    pb = new QPushButton("clear");

    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(le);
    vbox->addWidget(ck);
    vbox->addWidget(pb);
    this->setLayout(vbox);

    connect(pb, SIGNAL(clicked(bool)), le, SLOT(clear()));
    connect(ck, SIGNAL(clicked(bool)), this, SLOT(setpass(bool)));
}

Widget::~Widget()
{

}

容器

 Group Box

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QGroupBox>//QGroupBox控件是Qt中的一个容器控件,用于将一组相关的控件组织在一起,并提供一个可选的标题。它可以用于创建一个包含多个相关选项的面板,用户可以选择其中一个选项。
#include <QRadioButton>//QRadioButton控件是Qt中的一个单选按钮控件,用于在一组选项中选择一个选项。它常用于创建选项组,并且只能选择其中一个选项。

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

private:
    QGroupBox *gb;

    QRadioButton *r1, *r2, *r3;
};

#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    gb = new QGroupBox("choice", this);

    r1 = new QRadioButton("aaaa");
    r2 = new QRadioButton("bbbb");
    r3 = new QRadioButton("cccc");

    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(r1);
    vbox->addWidget(r2);
    vbox->addWidget(r3);

    gb->setLayout(vbox);

    QVBoxLayout *mainbox = new QVBoxLayout;
    mainbox->addWidget(gb);
    this->setLayout(mainbox);
}

Widget::~Widget()
{

}

scroarea box

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QLabel>
#include <QScrollArea>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();
private:
    QLabel *lb;
    QScrollArea *sa;
};

#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    lb = new QLabel(this);
    QPixmap pix("1.png");
    lb->setPixmap(pix);

    sa = new QScrollArea(this);
    sa->setWidget(lb);

    QVBoxLayout *mainbox = new QVBoxLayout;
    mainbox->addWidget(sa);
    this->setLayout(mainbox);
}

Widget::~Widget()
{

}

toolbox

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QToolBox>
#include <QPushButton>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();
private:
    QToolBox *tb;

    QPushButton *pb[3];
};

#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    tb = new QToolBox;

    pb[0] = new QPushButton("aaa");
    pb[1] = new QPushButton("bbb");
    pb[2] = new QPushButton("ccc");

    tb->addItem(pb[0], "11111");
    tb->addItem(pb[1], "22222");
    tb->addItem(pb[2], "33333");

    QVBoxLayout *mainbox = new QVBoxLayout;
    mainbox->addWidget(tb);
    this->setLayout(mainbox);
}

Widget::~Widget()
{

}

stackedw

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QStackedWidget>
#include <QTextEdit>
#include <QComboBox>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

private:
    QStackedWidget *sw;

    QTextEdit *te1, *te2, *te3;

    QComboBox *cb;

};

#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    sw = new QStackedWidget;

    te1 = new QTextEdit("aaaa");
    te2 = new QTextEdit("aaadsfasdfasdfa");
    te3 = new QTextEdit("aaasdfaaa");

    sw->addWidget(te1);
    sw->addWidget(te2);
    sw->addWidget(te3);

    cb = new QComboBox;
    cb->addItem("1111");
    cb->addItem("2222");
    cb->addItem("3333");

    QVBoxLayout *mainbox = new QVBoxLayout;
    mainbox->addWidget(sw);
    mainbox->addWidget(cb);
    this->setLayout(mainbox);

    connect(cb, SIGNAL(activated(int)), sw, SLOT(setCurrentIndex(int)));
}

Widget::~Widget()
{

}

qtabwidget

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTabWidget>
#include <QTextEdit>

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

private:
    QTabWidget *tw;

    QTextEdit *te1, *te2, *te3;
};

#endif // WIDGET_H
#include "widget.h"
#include <QVBoxLayout>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    tw = new QTabWidget;

    te1 = new QTextEdit("11111111");
    te2 = new QTextEdit("112221111");
    te3 = new QTextEdit("11113333");

    tw->addTab(te1, "1.c");
    tw->addTab(te2, "2.c");
    tw->addTab(te3, "3.c");

    QVBoxLayout *mainbox = new QVBoxLayout;
    mainbox->addWidget(tw);
    this->setLayout(mainbox);
}

Widget::~Widget()
{

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值