Qt学习笔记(3)——PushButton、RadioButton、CheckBox

Qt Creater中有6种Buttons控件,比Qt Designer 多了Command Link Button 和Button Box两种控件,其他4中类型的控件分别是QPushButton、QToolButton、QCheckBox、。它们的基本用法和Qt Designer 相似,由于它们使用的类基本相同,属性和成员函数没有太多变化,具体的细节但愿各位看官查看相关文档或百度,这里就再也不赘述了!框架

   下面直接贴代码,在这个示例中,咱们创建一个标准的Qt Gui Application项目,它包含了菜单栏、工具栏和状态栏,可是在这里咱们不须要它们,因此就把它们删除,运用前面讲的布局知识,将设计界面改为下述样式便可!函数

示例功能说明:工具

×单击选中一个RadioButton时,Label显示选中的RadioButton;布局

×单击选中一个CheckBox时,Label显示当前全部选中的CheckBox;ui

×单击CountCheckBox按钮时,统计当前全部选中的CheckBox,Label显示氮气全部选中的CheckBox。this

在这里咱们使用Qt自动生成的槽函数,不要写信号与槽函数的映射,(方法:右键单击你想添加槽的控件,选中Go to slot,选择槽函数所对应的信号函数,肯定后就会产生槽函数的声明和定义框架)spa

右击控件radioButton,选中“Go go solt”选项,在信号窗口中选择信号以下图所示:设计

而后只须要填充槽函数便可!code

按照一样的方法将其他几个控件都添加上对应的槽,项目建立及对应的控件属性、信号、槽函数编译完成以后,接下来对相应的文件进行编辑,示例代码以下所示:ci

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void displayCheckBox();

private slots:
    void on_radioButton_clicked();

    void on_radioButton_2_clicked();

    void on_radioButton_3_clicked();

    void on_checkBox_clicked();

    void on_checkBox_2_clicked();

    void on_checkBox_3_clicked();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::displayCheckBox()
{
    QString str;
     str = "";
     if(ui->checkBox->isChecked())
     {
         str += "CheckBox1 is Checked!";
     }
     if(ui->checkBox_2->isChecked())
     {
         str += "CheckBox2 is Checked!";
     }
     if(ui->checkBox_3->isChecked())
     {
          str += "CheckBox3 is Checked!";
     }
     ui->label_2->setText(str);
}

void MainWindow::on_radioButton_clicked()
{
    ui->radioButton->setChecked(true);
    ui->label->setText("adioButton1 is checked!");
}

void MainWindow::on_radioButton_2_clicked()
{
    ui->radioButton_2->setChecked(true);
    ui->label->setText("adioButton2 is checked!");
}

void MainWindow::on_radioButton_3_clicked()
{
    ui->radioButton_3->setChecked(true);
    ui->label->setText("adioButton3 is checked!");
}

void MainWindow::on_checkBox_clicked()
{
    if(ui->checkBox->isChecked())
    {
        this->displayCheckBox();
    }
    else
    {
        this->displayCheckBox();
    }
}

void MainWindow::on_checkBox_2_clicked()
{
    if(ui->checkBox_2->isChecked())
    {
        this->displayCheckBox();
    }
    else
    {
        this->displayCheckBox();
    }
}

void MainWindow::on_checkBox_3_clicked()
{
    if(ui->checkBox_3->isChecked())
    {
        this->displayCheckBox();
    }
    else
    {
        this->displayCheckBox();
    }
}

main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

运行结果以下所示:

好了,今天就到这吧,我还要赶忙复习,快要考试了,好忙的说呀!

对了,各位Osecers们,若是大家看到我讲的有不对的地方,但愿可以指出,小弟我这里先谢过了,若是有人不懂能够在个人博客里留言我等你哦!O(∩_∩)O~!

相关文章
相关标签/搜索