Trong số các yếu tố của biểu mẫu cửa sổ giao diện người dùng, các trường lựa chọn hoặc nhập dữ liệu có tầm quan trọng đặc biệt. Việc xử lý các giá trị đặt thường phải tức thời. Do đó, nhà phát triển cần nhận được thông tin về bất kỳ thay đổi nào trong cửa sổ. Trong các tình huống khác nhau, khi đọc giá trị trường, bạn cần xem xét loại dữ liệu và phạm vi cụ thể của phần tử biểu mẫu.
Hướng dẫn
Bước 1
Khi phát triển ứng dụng với thư viện lập trình Qt, các dạng cửa sổ thường được tạo từ các widget (lớp QWidget) hoặc hộp thoại (QDialog). Các phần tử để lựa chọn hoặc nhập dữ liệu được thêm vào các đối tượng của các lớp được chỉ định và được đặt trực quan trên một tiêu chuẩn hoặc hộp thoại.
Bước 2
Sử dụng lớp QComboBox để làm việc với danh sách thả xuống. Trường làm việc có thể nhìn thấy của nó có thể đang hoạt động để nhập dữ liệu hoặc bị khóa. Nếu người dùng có thể nhập một giá trị vào trường, thì bạn có thể lấy nó bằng cách tham chiếu đến đối tượng danh sách. Mã ví dụ: QComboBox m_comb; QString result; result = m_comb.currentText (); Ở đây, đối tượng m_comb sử dụng phương thức currentText () trả về giá trị hiện tại của trường trên cùng và nó có thể được nhập hoặc chọn trong trình đơn thả xuống danh sách. Kết quả biến chuỗi chứa giá trị từ trường làm việc hiển thị của hộp tổ hợp.
Bước 3
Tuy nhiên, kiểu dữ liệu đã nhập cũng có thể là số. Để chuyển đổi các giá trị chuỗi thành kiểu bắt buộc, hãy thực hiện một trong các thao tác sau: double resD = result.toDouble (); float resF = result.toFloat (); int resI = result.toInt (); Ở đây, giá trị trường kết quả sẽ được lưu trữ trong biến resD, nhưng đã ở dạng kép, trong resF - một giá trị float và trong resI - một giá trị nguyên int.
Bước 4
Khi sử dụng trình soạn thảo văn bản dòng đơn QLineEdit làm phần tử nhập dữ liệu, hãy lấy thông tin bạn cần với mục nhập sau: result = m_edit.text (). Ở đây, đối tượng m_edit, sử dụng hàm text (), trả về giá trị chuỗi được người dùng nhập vào trường.
Bước 5
Một phần tử QListBox có thể thực hiện một chức năng tương tự ở dạng cửa sổ, quyền truy cập vào dữ liệu đã nhập cho đối tượng này cũng tương tự như phần tử đã chỉ định trước đó: m_list.currentText ().
Bước 6
Khi truy cập vào tất cả các phiên bản của các lớp được mô tả, bạn phải có quyền truy cập thích hợp, vì không thể gọi các phương thức và đối tượng private từ các hàm của bên thứ ba. Các phương thức được xem xét để nhận giá trị trường có trạng thái mở.