Kindle Fire Coupon Kindle Fire Coupon 2012 Kindle DX Coupon 2012 Kindle Fire 2 Coupon Amazon Coupon Codes 2012 Kindle DX Coupon PlayStation Vita Coupon kindle touch coupon amazon coupon code kindle touch discount coupon kindle touch coupon 2012 logitech g27 coupon 2012 amazon discount codes
Facebook RSS Reset

Hướng dẫn connect Signal – Slot trên cùng một Class

  1. Cách kết nối SIGNAL – SLOT

a.Giới thiệu

–          Đây là một cơ chế giúp cho việc truyền thông điệp giữa các đối tượng trong Qt trở nên đơn giản hơn so với nhiều Framework khác. Muốn học được lập trình trên QT thì bắt buộc ta phải hiểu được cơ chế này.

–          Signal (tín hiệu) được một đối tượng “emit (phát ra)” trong quá trình tồn tại của nó. Có thể là khi nhận được một sự kiện từ bên ngoài, hay cũng có thể là bất cứ lúc nào mà người lập trình mong muốn.

–          Slot (khe cắm) thực chất là một phương thức của một đối tượng nào đó. Slot giống như một phương thức C++ bình thường ngoại trừ việc nó có thể được tự động gọi khi nhận được một signal nào đó với điều kiện là trước đó đã được connect (kết nối)

42

b. Yêu cầu: Tạo chương trình có một nút nhấn và một Text Edit. Khi nhấn nút thì Text Edit hiện chữ “Hello Word!” dùng connect SIGNAL – SLOT

c. Kiến thức cần nắm

–          Cách tạo một Project

–          Cách kết nối SIGNAL – SLOT

d. Các bước thực hiện

–          Tạo một form như hình bên dưới. Các bước thực hiện mình đã hướng dẫn ở phần trước

–          Chú ý tên của các Object name

29

30

31

32

–          Trong file maiwindow.cpp  xuất hiện hàm như hình

33

–          Tiếp theo ta tiến hành connect dòng lệnh như hình

 34

connect(ui->helloWordButton,SIGNAL(clicked()),this,SLOT(setTextHelloWord()));

–          Có thể hiểu đơn giản là trên Form mà ta thiết kế (UI), Button  có Object name là helloWordButton

–          SIGNAL(clicked())  là để bắt sự kiện khi ta Click Button

–          This là để chỉ Class hiện tại mà ta đang viết code (trong trường hợp này là mainwindow)

–          SLOT(setTextHelloWord()))  là để gọi hàm setTextHelloWord()

–          trong hàm setTextHelloWord()  có đoạn code ui->helloWordText->setText(“HelloWord!”); mình đã giải thích ơt bài trước.

–          Tiến hành chạy chương trình và kết quả ta nhận được khi ấn Click như hình

35

–          Tiến hành chình  sửa Form như hình bên dưới

36

–          Thêm đoạn code sau vào file mainwindow.h

37

–          Click chuột phải và chọn như hình

38

–          Trong file mainwindow.cpp xuất hiện hàm setQtText();

39

–          Thêm vào chương trình đoạn code như hình

40

–          Hiểu đơn giản là khi click chuột lên button thì SLOT setTextHelloWord() được gọi

–          Trong hàm setTextHelloWord(), sau khi setText “Hello Word” thì sẽ kich hoạt môt tín hiệu callSetQtText()

–          Khi tín hiệu callSetQtText() được kich hoạt thì SLOT setQtText() được gọi và nó sẽ setText “QT(^_^)” lên Text Edit là chúng ta mới tạo thêm

–          Build chương trình và kết quả ta nhận được khi Click.

41

 

Leave a comment

No comments yet.

Leave a Comment