Signal clicked, selected and deselected QLabel - QT5

Hi mọi người, mình đang tập code Qt5.
Mình cần 4 ô để điền số. Khi click vào ô nào thì màu nền ô đó chuyển từ trắng sang xanh, số nhập liên tục từ bàn phím vào ô đó, khi ấn enter thì số vừa nhập sẽ được giữ lại ô đó và màu nền chuyển sang trắng, nếu không enter mà click ra ngoài thì giá trị sẽ quay về số khi chưa nhập, đồng thời màu nền cũng chuyển sang trắng.
Mình đã tạo 4 ô bằng QLabel (Lý do mình không dùng LineEdit hay TextEdit là vì nó có dấu nháy Typing), QLabel mình thấy đạt yêu cầu nhưng lại không có Signal clicked. Và trường hợp clicked vào và ấn số để thay đổi giá trị của Label mình cũng chưa nghĩ ra hướng giải quyết ạ.
Untitled

để rồi bạn chưa làm được gì hết ngoài việc vẽ được mấy cái label
vì sao bạn không thử làm với text edit cho hoạn thiện, sau đó tìm cái bỏ dấu nhảy của con trỏ?

2 Likes

Mình cũng đang dùng QLineEdit, sau đó bỏ Enable thì cũng mất dấu nháy, nhưng cũng chưa có cách lấy Signal Clicked hay select/deselect.

nếu bạn không tìm được kết quả với keyword này thì có thể im với keywork khác

cái mà bạn đang cần như trong mô tả nó không phải keyword này
nó lên quan đến event key (enter), là focus (onfocus, focus event change…)

3 Likes

Muốn click, focus, sao không lấy cái QPushButton/ QToolButton/QRadioButton ?

Hơn nữa mọi yêu cầu đều có thể dễ dàng giải quyết được bằng QLineEdit kết hợp Qss (Stylesheet).

3 Likes

Mình nghĩ nó giống winform nên lựa đại một cái đó ạ.

Dùng QLineEdit + qss nhé !

3 Likes

Cảm ơn mọi người! Mình đang dùng QLineEdit+installEventFilter+CSS, nhưng còn nhập dữ liệu vào QLineEdit trong khi uncheck Enable mình vẫn chưa có giải pháp ạ.

Đặt QLineEdit là readonly thay vì disable để mất con trỏ nhưng vẫn có khả năng focus.
Sau đó phải tự bắt sự kiện nhấn phím để xử lý.

2 Likes

Mình cảm ơn!! Mình nhầm properties đấy ạ, mình đang checked readonly.

Vậy còn lại là bắt keyDownEvent và tự xử lý thôi.
Bỏ được cursor mà đánh đổi lại cũng hơi đắt :smiley:

Đúng rồi bạn ạ. Ngoài bỏ cursor thì mình cũng muốn nó typing đè luôn mà không phải xóa giá trị cũ nữa. Nên mình nghĩ kiểu gì cũng phải custom.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?