【无标题】

常用控件对象:

1. 布局控件

水平布局(QHBoxLayout) 垂直布局(QVBoxLayout) 表格布局(QGridLayout) form双列布局(QFormLayout)

弹簧控件(QSpacerItem)

  • 水平布局
    •     QHBoxLayout *hboxlayout = new QHBoxLayout;
          hboxlayout->addWidget(q_time_edit);
          hboxlayout->addWidget(q_push_button_time);
          this->setLayout(h_boxlayout);
      
  • 垂直布局
    • QVBoxLayout *vlayout = new QVBoxLayout;
      vlayout->addWidget(q_double_spin_box);
      vlayout->addWidget(q_plain_text_edit);
      h_boxlayout->addLayout(vlayout);
      
  • 表格布局
    •  QGridLayout *gridLayout = new QGridLayout();
          for (int i = 0, k = 1; i < 3; i++)
          {
              for (int j = 0; j < 3; j++, k++)
              {
                  gridLayout->addWidget(button_num_0_9[k], i, j);
              }
          }
      
  • 弹簧控件:通过宽高属性的固定和自动可以调整
    •     // 通过 第二和第三个参数确定方向
          spacer = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
      

2. 输入控件:input widget

下拉列表:(QComboBox) 字体输入列表(QFontComboBox)

行输入框 (QLineEdit) 文本框(QTextEidt) 普通文本框(QPlainTextEdit)

选值框(QSpinBox) 浮点型选值框(QDoubleSpinBox)

时间编辑框(QTimeEdit) 日期编辑框(QDateEdit) 日期时间编辑框(QDateTimeEdit)

旋钮(QDial)

滚动条(QScrollBar) 滑动条(QSlider)

2.1. 下拉列表:

  • 多用于列表选择,可以添加字符串等对象;

  • 在这里插入图片描述

  • #include <QComboBox>
    QComboBox *q_combo_box;
    q_combo_box = new QComboBox();
    
    q_combo_box->addItem("one");
    q_combo_box->addItem("two");
    q_combo_box->addItem("test");
    
    

2.2. 字体输入列表

  • 可用于简易的字体类型选择输入

  • 在这里插入图片描述

  • 
    
    
        QFontComboBox *q_font_combo_box;
        q_font_combo_box = new QFontComboBox();
    

2.3. 行输入框

  • 用于输入一行信息:用户名,密码的输入

  • 在这里插入图片描述

  • 
        QLineEdit *q_line_edit;
    
        q_line_edit = new QLineEdit();
        q_line_edit->setPlaceholderText("这是行输入框");
    

2.4. 文本框

  • 多行文本输入,显示、多用于显示,支持html显示

  • 在这里插入图片描述

  • 
        QTextEdit * q_text_edit;
        q_text_edit = new QTextEdit("这是文本输入框");
        q_text_edit->setMinimumHeight(40);
    
    

2.5. 普通文本框

  • 多行文本输入,显示、多用于对文本经常处理的情况。QTextEdit多一些文本处理能力

  • 在这里插入图片描述

  • 
        q_plain_text_edit = new QPlainTextEdit("这是普通文本输入框");
    

2.6. 选值框

  • 用于输入数值,限定了输入的只能是数字;

  • 在这里插入图片描述

  • 
        q_spin_box = new QSpinBox;
    
    

2.7. 浮点型选值框 (和上面类似)

  •     q_double_spin_box = new QDoubleSpinBox;
        q_double_spin_box->setValue(1.25);
    

2.8. 时间编辑框

  • 编辑时间 收集时间

  • 在这里插入图片描述

  • 
        q_time_edit = new QTimeEdit(QTime::currentTime());
    

2.9. 日期编辑框

  • 编辑日期 收集日期
  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kIG2khqe-1659017174412)(assets/20220728_194528_image.png)]
  • 
        q_date_edit = new QDateEdit(QDate::currentDate());
    

2.10. 日期时间编辑框 收集日期和时间

  • 
        q_date_time_edit = new QDateTimeEdit(QDateTime::currentDateTime());
    

2.11. 旋钮

  • 收集输入值

  • 在这里插入图片描述

  •     q_dial = new QDial();
        q_dial->setMaximum(100);
        q_dial->setMinimum(-100);
    
    

2.12. 滚动条: 推荐使用QScrollArea

  • 在这里插入图片描述

    • 
          q_scrollbar = new QScrollBar();
      

2.13. QSlider

  • 在这里插入图片描述

    
        q_slider = new QSlider;
        q_slider->setOrientation(Qt::Horizontal);
    
    

3. 输出控件:output widget

Label 标签:(QLabel) 文本浏览框:(QTextBorwser) 日历(QCalendarWidget)

lcd显示器 (QLCDNumber) 进度条显示:QProgressBar

3.1. Label 标签:(QLabel):

  • 功能: 支持显示文字,以及图片和动图
  • 样式:在这里插入图片描述
  • 
        label_text = new QLabel("这个是个 label 文本");
        label_img = new QLabel("这个是 img ");
        label_gif = new QLabel("这个是 gif ");
    
        label_img->setPixmap(QPixmap("../need/1.jpg"));
    
        QMovie *m = new QMovie("../need/1.gif");
    

3.2. QTextborwser 文本框:

  • 功能:支持html语法。

  • 样式:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0jgA9EVX-1659017174414)(assets/20220728_191055_image.png)]

  • 
        TextBrowser = new QTextBrowser();
    
        TextBrowser->setText("<H1>AAAA<H1> HHHHH");
    

3.3. QCalendarWidget 日历:

  • 功能:显示一个日历框,并提供了基础的功能;

  • 样式:
    在这里插入图片描述

  • 
        calendar = new QCalendarWidget();
    

3.4. QLCDNumber lcd显示器

  • 功能:模拟led7段数码管,显示数值,可以显示int和double类型的,

  • 样式:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-duWCbuDI-1659017174415)(assets/20220728_191400_image.png)]

  • 
        lcd = new QLCDNumber();
        lcd->setMinimumHeight(50);
        lcd->display(20);
        lcd->setDigitCount(1);//设置显示长度
    

3.5. QProgressBar 进度条显示

  • 功能:显示进度条 ,一般通过定时器进行调整值,不然会卡死

  • 样式:
    在这里插入图片描述

  • 
       progressbar = new QProgressBar();
       progressbar->setMaximum(100);
       progressbar->setValue(10);
    
    
        t = new QTimer(this);
    
    
        connect(t, SIGNAL(timeout()), this, SLOT(timer_timeoutmy()));
    
    void display::timer_timeoutmy(void)
    {
        progressbar->setValue(i++);
        if (i == 100)
            i = 0;
        qDebug() << "test " << i;
    }
    
    

4. 容器控件:Containers

基础容器(QWidget) 分组框(QGroupBox) 滚动窗口(QScrollArea)

工具箱框(QToolBox) 带选项的框(QTabWidget) 栈框(QStackedWidget)

4.1. 分组框

  • 提供了一个自带标头的框框 常用于
    在这里插入图片描述

    题目年后
     A: 1
     B: 2
     C: 3
     D: 4
    
    
        q_group_box = new QGroupBox;
        button1 = new QRadioButton("1");
        button2 = new QRadioButton("2");
        button3 = new QRadioButton("3");
        QHBoxLayout *hlayout = new QHBoxLayout;
        hlayout->addWidget(button1);
        hlayout->addWidget(button2);
        hlayout->addWidget(button3);
        q_group_box->setLayout(hlayout);
        QVBoxLayout *vlayout = new QVBoxLayout;
        vlayout->addWidget(q_group_box);
        this->setLayout(vlayout);
    

4.2. 工具箱框

  • 实现类似工具分类

  • 样式:
    在这里插入图片描述

  • 
        button1 = new QRadioButton("1");
        button2 = new QRadioButton("2");
        button3 = new QRadioButton("3");
        q_group_box->setLayout(hlayout);
        QVBoxLayout *vlayout = new QVBoxLayout;
        q_tool_box = new QToolBox;
        q_tool_box->addItem(button1, "one");
        q_tool_box->addItem(button2, "two");
        q_tool_box->addItem(button3, "three");
        vlayout->addWidget(q_tool_box);
        this->setLayout(vlayout);
    
    

4.3. 带选项的窗口:

  • 样式
    在这里插入图片描述

  • 
        button1 = new QRadioButton("1");
        button2 = new QRadioButton("2");
        button3 = new QRadioButton("3");
        QVBoxLayout *vlayout = new QVBoxLayout;
        q_tab_widget = new QTabWidget();
    
        q_tab_widget->addTab(button1, "one");
        q_tab_widget->addTab(button2, "two");
        q_tab_widget->addTab(button3, "three");
        q_tab_widget->setTabsClosable(true);
        vlayout->addWidget(q_tab_widget);
    

4.4. 栈框:

  • 样式
    在这里插入图片描述

  • 使用:可以使用setCurrentWidget (QWidget *widget ) 方法设置显示的页面,可以向它里面添加多个页面

  • 
        button1 = new QRadioButton("1");
        button2 = new QRadioButton("2");
        button3 = new QRadioButton("3");
        QVBoxLayout *vlayout = new QVBoxLayout;
    
    
        q_stacked_widget = new QStackedWidget;
        q_stacked_widget->addWidget(button1);
        q_stacked_widget->addWidget(button2);
        q_stacked_widget->addWidget(button3);
    
        QVBoxLayout *vlayout1 = new QVBoxLayout;
        vlayout->addWidget(q_stacked_widget);
        vlayout->addLayout(vlayout1);
    
        button4 = new QPushButton("4");
        button5 = new QPushButton("5");
        button6 = new QPushButton("6");
    
        vlayout1->addWidget(button4);
        vlayout1->addWidget(button5);
        vlayout1->addWidget(button6);
    
        q_stacked_widget->setCurrentIndex(0);
    
        this->setLayout(vlayout);
    
        connect(button4, SIGNAL(clicked()), this, SLOT(showMy()));
        connect(button5, SIGNAL(clicked()), this, SLOT(showMy()));
        connect(button6, SIGNAL(clicked()), this, SLOT(showMy()));
    
    }
    
    void Containers::showMy()
    {
        QPushButton *button = static_cast<QPushButton *>(sender());
        if (button->text() == "4")
        {
    
            q_stacked_widget->setCurrentIndex(0);
        }
        else if (button->text() == "5")
        {
            q_stacked_widget->setCurrentIndex(1);
        }
        else if (button->text() == "6")
            q_stacked_widget->setCurrentIndex(2);
    }
    

5. 按钮控件:putton

普通按钮(QPushButton)、单选按钮(QRadioButton),复选框按钮(QCheckBox)、工具按钮(QToolButton)

5.1. 普通按钮:

拥有信号:

void	animateClick(int msec = 100)
void	click()
void	setChecked(bool)
void	setIconSize(const QSize &size)
void	toggle()
//需要的头
#include <QPushButton>
#include <QDebug>

//类中的声明
QPushButton *pushbutton;

//定义 和 点击信号绑定槽函数
 pushbutton=new QPushButton("这是普通按钮",this);
 connect(pushbutton, SIGNAL(clicked()), this, SLOT(pushbuttonClicked()));

//槽函数
void button::pushbuttonClicked()
{
    qDebug() << "pushbutton clicked";
}

5.2. 单选按钮

  • 在同一组单选按钮中只能选一个,当选择另一个时会导致之前被选择的取消掉
  • 分组:在同一个Wdiget(及派生类中的单选按钮都是一组的)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值