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

相關文章
相關標籤/搜索