qt1.3可視化界面和信號與槽

1組件拖入ide

qt1.3可視化界面和信號與槽
qt1.3可視化界面和信號與槽
qt1.3可視化界面和信號與槽

2佈局管理
qt1.3可視化界面和信號與槽
qt1.3可視化界面和信號與槽函數

佈局以下:
qt1.3可視化界面和信號與槽佈局

3夥伴關係
功能:實現快捷鍵設置功能,在label中寫入&N,快捷鍵爲ALT+N跳轉到設置位置
qt1.3可視化界面和信號與槽字體

qt1.3可視化界面和信號與槽
qt1.3可視化界面和信號與槽

Tab順序編輯模式:
現象:按tab鍵,光標以固定順序移動ui

qt1.3可視化界面和信號與槽
qt1.3可視化界面和信號與槽
3信號與槽
QT設計的基礎:信號與槽(Signal&Slot)
信號:特定狀況被髮射的信號
槽:對發射信號的響應函數
信號與槽的關係:當信號被觸發時,關聯的槽函數自動執行。
信號與槽關聯用:
connect( sender , SIGNAL(Signal()) , receiver , SLOT(slot()));
connect()是Object類的一個靜態函數,而QObject是全部Qt類的基類
sender:發送信號的對象
Signal():發出的信號(須要括號,有參數是須要指明參數)
Receiver():接受信號的對象
Slot:槽函數(須要括號,有參數是須要指明參數)
connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(receiver()));
自動生成信號與槽並創建鏈接:this

qt1.3可視化界面和信號與槽
qt1.3可視化界面和信號與槽
qt1.3可視化界面和信號與槽

第三種生成信號與槽的方法:
qt1.3可視化界面和信號與槽
qt1.3可視化界面和信號與槽設計

qt1.3可視化界面和信號與槽

信號與槽注意事項:
1一個信號能夠鏈接多個槽函數
connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(receiver()));
connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(close()));
執行順序是創建鏈接時的順序依次執行
2多個信號鏈接同一個槽
connect(ui->rbtnBlue,SIGNAL(clicked()),this,SLOT(seclocr()));
connect(ui->rbtnRed,SIGNAL(clicked()),this,SLOT(seclocr()));
connect(ui->rbtnBlack,SIGNAL(clicked()),this,SLOT(seclocr()));
任何一個RadioButtton被按下,都會執行seclocr()。
3一個信號能夠鏈接另一個信號
connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(reinfo()));
當一個信號發射時,另外一個信號也被髮射。
4通常要求信號與槽的參數個數與類型必須保持一致,但至少信號的參數不能少於槽的參數的個數。(信號參數個數>=槽參數個數)。
5信號與槽是當信號發射時,槽函數當即執行,執行完成後才進行後面的程序。3d

實例2
qt1.3可視化界面和信號與槽
.hcode

private slots:
    void on_checkBox_clicked(bool checked);

    void on_checkBox_2_clicked(bool checked);

    void on_checkBox_3_clicked(bool checked);

void changecolor();

.c對象

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->radioButton,SIGNAL(clicked()),this,SLOT(changecolor()));
    connect(ui->radioButton_2,SIGNAL(clicked()),this,SLOT(changecolor()));
    connect(ui->radioButton_3,SIGNAL(clicked()),this,SLOT(changecolor()));
}

MainWindow::~MainWindow()
{
    delete ui;
}
//字體樣式設置
void MainWindow::on_checkBox_clicked(bool checked)
{
    QFont font=ui->textEdit->font();
    font.setUnderline(checked);
    ui->textEdit->setFont(font);
}

void MainWindow::on_checkBox_2_clicked(bool checked)
{
    QFont font=ui->textEdit->font();
    font.setItalic(checked);
    ui->textEdit->setFont(font);
}

void MainWindow::on_checkBox_3_clicked(bool checked)
{
    QFont font=ui->textEdit->font();
    font.setBold(checked);
    ui->textEdit->setFont(font);
}
//改變顏色
void MainWindow::changecolor()
{
   QPalette pal=ui->textEdit->palette();
   if(ui->radioButton->isChecked())
   {
       pal.setColor(QPalette::Text,Qt::red);
   }
   else if(ui->radioButton_2->isChecked())
   {
       pal.setColor(QPalette::Text,Qt::blue);
   }
   else if (ui->radioButton_3->isChecked())
   {
       pal.setColor(QPalette::Text,Qt::black);
   }
   else {
       pal.setColor(QPalette::Text,Qt::black);
   }
   ui->textEdit->setPalette(pal);
}
   }
   ui->textEdit->setPalette(pal);
}

qt1.3可視化界面和信號與槽

運行結果:

qt1.3可視化界面和信號與槽

相關文章
相關標籤/搜索