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;

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

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

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

然后只需要填充槽函数即可!

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

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~!

时间: 2024-08-25 00:09:42

Qt学习笔记(3)——PushButton、RadioButton、CHeckBox的相关文章

【Qt学习笔记】13.拖放技术:Drag & Drop

1.接受拖放 Drag & Drop 是一个界面操作,用于在两个窗口间传递数据. Drag Source: 拖放源窗口 Drag Target: 拖放目标窗口 拖放操作: 1.在源窗口:选中目标,按下鼠标,移动,拖至目标窗口(Drag) 2.在目标窗口:取消鼠标,到指定位置,松开鼠标(Drop) (按下ESC取消操作) MIME: MIME(Multipurpose Internet Mail Extensions)被传递的数据以MIME格式传送,它是多组type-data数据:(type0,

QT学习笔记—1

1.模态和非模态的区别:非模态可以同时操作两个窗口,模态的只能在顶层窗口关闭之后才能使用其他窗口 //同时显示出widget和dialog窗口,非模态     QDialog *dialog = new QDialog(this);     dialog->show(); //同时显示出widget和dialog窗口,模态     QDialog *dialog = new QDialog(this);     dialog->setModal(true);     dialog->sh

Qt学习笔记-Widget布局管理

Qt学习笔记4-Widget布局管理 以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,finddialog.h,finddialog.cpp及main.cpp. //finddialog.h代码 #ifndef FINDDIALOG_H#define FINDDIALOG_H #include <QDialog> class QCheckBox;class QLabel;class QLineE

【Qt学习笔记】2.窗体Widget && 屏幕坐标 && 布局

一.窗体 在Qt中,把窗体(口)叫做Widget. Widget可以是主窗体(口),也可以是依附在主窗体(口)上的各种控件,作为子窗体,这两种窗口,分别称作顶级窗口(top-level widget)和子窗口(sub widget). 顶级窗口:一个标准的窗口,带边框.标题栏.若干按钮.(独立) 子窗口:在窗口里面的窗口,例如:按钮.文本框等控件.(不独立,随着父窗口移动) 注意: 1.每个子窗口都有一个父窗口 2.子窗口里面可能包含了若干子窗口,是一层一层的关系. 3.顶级窗口也有父窗口:就是

qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏,主机是mini2440,分辨率是800*480,程序写比較粗糙,但对刚開始学习的人还是有一点启示,大家一起进步. qt中提供了QGphicsView,QGraphicsScene,QGraphicsItem,QGraphicsPixmapItem是QGraphicsItem的子类 分辨创建它们的实

QT学习笔记(1)

采用QT创建一个GUI的应用程序时,都必须包含一个QApplication的对象,而对于非GUI的QT程序,可以使用不依赖QtGui库的QApplication QT的主要类: QLable                   标签类 QPushButton          按钮类 QVBoxLayout          竖布局管理器类 QHBoxLayout          横布局管理器类 QWidget                 窗口部件类 QGridLayout        

【Qt学习笔记】1.初步接触

一.前言 Qt是一个跨平台的C++图形面向对象的框架,今天开始学习并记录学习过程,希望通过这段时间的努力学会Qt的使用. 同时我也希望在学习的过程中对C++的各种特性有能深刻的认识. 此外,我在Qt初步的学习过程中,所用的环境应该是 VS2015 IDE 二.安装 官网下载Qt安装包和 Qt for VS addin,分别安装,并配置. 三.Hello World 接下来用Qt框架来完成第一个程序 首先打开VS,创建一个Qt工程 熟悉的C++界面,但Qt是有可视化界面的,点击解决方案管理器中的.

QT学习笔记(14) 定时器类DTimer的使用

一. 在前面的学习笔记中,我们已经学习定时器事件http://www.cnblogs.com/blog-ccs/p/7445323.html 现在,我们学习QTimer定时器类,比较优劣. 二.示例代码 widget.h 1 #ifndef WIDGET_H 2 #define WIDGET_H 3 4 #include <QWidget> 5 #include <QTimer>//定时器对象 6 7 namespace Ui { 8 class Widget; 9 } 10 11

QT学习笔记(一)——ui的认识

////////////2015/08/06/////////////////// ///////////by xbw////////////////////////// //////////环境 Qt Creator 5.3.1//// 最终有时间好好学习一下QT了,在这之前就对QT强大的图形界面有所了解,以下记一下笔记啦. 第一节 UI 一步步来,第一次嘛. #include "mainwindow.h" #include "ui_mainwindow.h" #