QT基础部件

按钮类

  • 普通按钮

    头文件:
    #include <QPushButton>
    示例:
    QPushButton *bt_button; //普通按钮
    bt_button = new QPushButton("普通按钮");   
  • 工具按钮

    头文件:
    #include <QToolButton>
    示例:
    QToolButton *bt_tool;   //工具按钮
    bt_tool = new QToolButton;
    bt_tool->setText("工具按钮");
  • 单选按钮

    头文件:
    #include <QRadioButton>
    示例:
    QRadioButton *bt_radio; //单选按钮
    bt_radio = new QRadioButton("单选按钮");
    
  • 复选按钮

    头文件:
    #include <QCheckBox>
    示例:
    QCheckBox *bt_check;    //复选按钮
    bt_check = new QCheckBox("复选框");
  • 命令连接按钮

    头文件:
    #include <QCommandLinkButton>
    示例:
    QCommandLinkButton *bt_cmd;//命令按钮
    bt_cmd = new QCommandLinkButton("百度");
    bt_cmd->setDescription("www.baidu.com");

布局类

  • 水平布局

    头文件:
    #include <QHBoxLayout>
    示例:
    QHBoxLayout *vbox = new QHBoxLayout; //构造一个布局管理器
    vbox->addWidget(le);                 //将需要布局的控件加入布局管理器
    vbox->addWidget(bt);
    this->setLayout(vbox);               //将布局管理器贴在当前界面
  • 垂直布局

    头文件:
    #include <QVBoxLayout>
    示例:
    QVBoxLayout *vbox = new QVBoxLayout; //构造一个布局管理器
    vbox->addWidget(le);                 //将需要布局的控件加入布局管理器
    vbox->addWidget(bt);
    this->setLayout(vbox);               //将布局管理器贴在当前界面
  • 网格布局

    头文件:
    #include <QGridLayout>
    示例:
    QGridLayout *vbox = new QGridLayout; //构造一个布局管理器
    vbox->addWidget(le, 0, 0, 1, 2);     //将需要布局的控件加入布局管理器
    vbox->addWidget(bt, 1, 1);
    this->setLayout(vbox);               //将布局管理器贴在当前界面

输出类

  • 标签

    头文件:
    #include <QLabel>
    示例:
    QLabel *lb_text; //文本标签
    QLabel *lb_pix;  //图片标签
    QLabel *lb_gif;  //动画标签
    ​
    lb_text = new QLabel("标签测试");
    lb_text->setAlignment(Qt::AlignCenter);
    lb_pix = new QLabel("我是图片");
    lb_pix->setMinimumSize(10, 10);
    lb_pix->setScaledContents(true); //自动缩放显示
    lb_pix->setPixmap(QPixmap("C:\\Users\\ThinkPad T490\\Desktop\\220501\\1.bmp"));
    lb_gif = new QLabel("我是动画");
    QMovie *m = new QMovie("C:\\Users\\ThinkPad T490\\Desktop\\220501\\1.gif");
    lb_gif->setMovie(m);
    m->start();
  • 文本浏览器

    头文件:
    #include <QTextBrowser>
    示例:
    QTextBrowser *tbrowser;
    tbrowser = new QTextBrowser;
        tbrowser->setText("<!DOCTYPE html>\
                          <html>\
                          <head>\
                          <meta charset=\"utf-8\">\
                          <title>runoob.com</title>\
                          </head>\
                          <body>\
                              <h1  >AAAAAAAA</h1>\
                              <p style=\"background-color:rgb(255,0,0)\">BBBBBBBBB</p>\
                          </body>\
                          </html>");
    ​
  • 日历窗口

    头文件:
    #include <QCalendarWidget>
    示例:
    QCalendarWidget *caw;
    caw = new QCalendarWidget;
  • 七段数码管

    头文件:
    ​#include <QLCDNumber>
    示例:
    QLCDNumber *lcd;
    lcd = new QLCDNumber;
    lcd->setMinimumHeight(50);
    lcd->display(250); //显示数字
  • 进度条

    头文件:
    #include <QProgressBar>
    示例:
    QProgressBar *pbr;
    pbr = new QProgressBar;
    pbr->setValue(60);  //显示进度

输入类

  • 下拉框/组合框

    头文件:
    #include <QComboBox>
    示例:
    QComboBox *cmb;
    cmb = new QComboBox;  //构造组合框
  • 字体下拉框

    头文件:
    #include <QFontComboBox>
    示例:
    QFontComboBox *fcmb;
    fcmb = new QFontComboBox;
    connect(fcmb, &QFontComboBox::currentFontChanged, [&](QFont f){ lb->setFont(f);});
  • 行编辑

    头文件:
    #include <QLineEdit>
    示例:
    QLineEdit *le;
    le = new QLineEdit;
    le->setPlaceholderText("用户名");
  • 文本编辑器

    头文件:
    #include <QTextEdit>
    示例:
    QTextEdit *te;
    te = new QTextEdit;
    connect(te, SIGNAL(textChanged()), this, SLOT(te_to_lb()));
  • 自旋框

    头文件:
    #include <QSpinBox>
    示例:
    QSpinBox *sb;
    sb = new QSpinBox;
    sb->setMaximum(20); //最大只能为20
    sb->setSingleStep(10); //设置单步跨度
    connect(sb, SIGNAL(valueChanged(int)),lcd,SLOT(display(int)));
  • 时间编辑器

    头文件:
    #include <QTimeEdit>
    示例:
    QTimeEdit *timee;
    timee = new QTimeEdit;
    connect(timee,SIGNAL(timeChanged(QTime)),this,SLOT(show_time(QTime)));
  • 旋钮

    头文件:
    #include <QDial>
    示例:
    QDial *dl;
    dl = new QDial;
    dl->setRange(0, 1000); //设置调节范围
    connect(dl, SIGNAL(valueChanged(int)),lcd,SLOT(display(int)));
  • 滚动条

    头文件:
    #include <QScrollBar>
    示例:
    QScrollBar *slb;
    slb = new QScrollBar;
    slb->setRange(0, 1000); //设置调节范围
    slb->setOrientation(Qt::Horizontal); //显示方案“水平”
    connect(slb, SIGNAL(valueChanged(int)),lcd,SLOT(display(int)));
  • 滑动杆

    头文件:
    #include <QSlider>
    示例:
    QSlider *sd;
    sd = new QSlider;
    sd->setRange(0, 1000); //设置调节范围
    sd->setOrientation(Qt::Horizontal); //显示方案“水平”
    connect(sd, SIGNAL(valueChanged(int)),lcd,SLOT(display(int)));

容器

  • 分组框

    头文件:
    #include <QGroupBox>
    示例:
    QGroupBox *g1;
    QGroupBox *g2;
    lb[0] = new QLabel("题目1 safasfasfasdf");
    rb[0] = new QRadioButton("aaaaa");
    rb[1] = new QRadioButton("bbbbb");
    rb[2] = new QRadioButton("ccccc");
    ​
    QVBoxLayout *vbox1 = new QVBoxLayout;
    vbox1->addWidget(lb[0]);
    vbox1->addWidget(rb[0]);
    vbox1->addWidget(rb[1]);
    vbox1->addWidget(rb[2]);
    ​
    g1 = new QGroupBox("AAAA");   //带边框显示和注释的容器
    g1->setLayout(vbox1);
    ///
    lb[1] = new QLabel("题目2 dhjdfdjdjfdjdfdjjjjfd");
    rb[3] = new QRadioButton("xxxxx");
    rb[4] = new QRadioButton("yyyyy");
    rb[5] = new QRadioButton("zzzzz");
    ​
    QVBoxLayout *vbox2 = new QVBoxLayout;
    vbox2->addWidget(lb[1]);
    vbox2->addWidget(rb[3]);
    vbox2->addWidget(rb[4]);
    vbox2->addWidget(rb[5]);
    ​
    g2 = new QGroupBox("BBBB");     //带边框显示和注释的容器
    g2->setLayout(vbox2);
    ​
    QVBoxLayout *vbox3 = new QVBoxLayout;
    vbox3->addWidget(g1);
    vbox3->addWidget(g2);
    setLayout(vbox3);
  • 白板

    头文件:
    #include <QWidget>
    示例:
    lb[0] = new QLabel("题目1 safasfasfasdf");
    rb[0] = new QRadioButton("aaaaa");
    rb[1] = new QRadioButton("bbbbb");
    rb[2] = new QRadioButton("ccccc");
    ​
    QVBoxLayout *vbox1 = new QVBoxLayout;
    vbox1->addWidget(lb[0]);
    vbox1->addWidget(rb[0]);
    vbox1->addWidget(rb[1]);
    vbox1->addWidget(rb[2]);
    ​
    g1 = new QWidget;   //无边框显示的容器
    g1->setLayout(vbox1);
    ///
    lb[1] = new QLabel("题目2 dhjdfdjdjfdjdfdjjjjfd");
    rb[3] = new QRadioButton("xxxxx");
    rb[4] = new QRadioButton("yyyyy");
    rb[5] = new QRadioButton("zzzzz");
    ​
    QVBoxLayout *vbox2 = new QVBoxLayout;
    vbox2->addWidget(lb[1]);
    vbox2->addWidget(rb[3]);
    vbox2->addWidget(rb[4]);
    vbox2->addWidget(rb[5]);
    ​
    g2 = new QWidget;   //无边框显示的容器
    g2->setLayout(vbox2);
    ​
    QVBoxLayout *vbox3 = new QVBoxLayout;
    vbox3->addWidget(g1);
    vbox3->addWidget(g2);
    setLayout(vbox3);
  • 滚动窗口

    头文件:
    #include <QScrollArea>
    示例:
    QLabel *lb;
    QScrollArea *ar;
    lb = new QLabel;
    lb>setPixmap(QPixmap("C:\\Users\\ThinkPadT490\\Desktop\\22050\\1.jpeg"));
    //lb->setParent(this);
    ​
    ar = new QScrollArea; //滚动窗口容器
    ar->setWidget(lb);    //把标签放入容器
    //ar->setParent(this);
    ​
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(ar);
    setLayout(vbox);
  • 工具箱

    头文件:
    #include <QToolBox>
    示例:
    QTextEdit *t1, *t2;
    QToolBox *box;
    t1 = new QTextEdit("aaaaaaaaaaaaa");
    t2 = new QTextEdit("bbbbbbbbbbbbbbb");
    ​
    //    QVBoxLayout *vbox = new QVBoxLayout;
    //    vbox->addWidget(t1);
    //    vbox->addWidget(t2);
    //    setLayout(vbox);
    box = new QToolBox;   //构造一个工具箱容器
    box->addItem(t1, "aaaaa"); //将文本编辑框装入工具箱
    box->addItem(t2, "bbbbb"); //将文本编辑框装入工具箱
    ​
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(box);
    setLayout(vbox);
  • 制表容器

    头文件:
    #include <QTabWidget>
    示例:
    QTextEdit *t1, *t2;
    QTabWidget *box;
    t1 = new QTextEdit("aaaaaaaaaaaaa");
    t2 = new QTextEdit("bbbbbbbbbbbbbbb");
    ​
    box = new QTabWidget;    //构造一个制表容器
    box->setTabsClosable(true);//显示关闭的按钮
    box->addTab(t1, "aaaa"); //插入一个新标签
    box->addTab(t2, "bbbb"); //插入一个新标签
    ​
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(box);
    setLayout(vbox);
    ​
    connect(box,SIGNAL(tabCloseRequested(int)),this,SLOT(close_tab(int)));
  • 栈式窗口

    头文件:
    #include <QStackedWidget>
    示例:
    QTextEdit *t1, *t2;
    QStackedWidget *box;
    QComboBox *cb;
    ​
    t1 = new QTextEdit("aaaaaaaaaaaaa");
    t2 = new QTextEdit("bbbbbbbbbbbbbbb");
    ​
    box = new QStackedWidget;    //构造一个栈容器
    box->addWidget(t1);  //插入一个新标签
    box->addWidget(t2); //插入一个新标签
    ​
    //测试
    cb = new QComboBox;
    cb->addItem("文本1");
    cb->addItem("文本2");
    ​
    connect(cb,SIGNAL(activated(int)),box,SLOT(setCurrentIndex(int)));
    ​
    QVBoxLayout *vbox = new QVBoxLayout;
    vbox->addWidget(cb);
    vbox->addWidget(box);
    setLayout(vbox);
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AmorFati_q

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

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

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

打赏作者

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

抵扣说明:

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

余额充值